ES6部分总结

news/2024/7/10 23:39:15 标签: es6, javascript

文章目录

  • 数组解构
  • 对象解构
  • 模板字符串
  • 带标签的模板字符串
  • 字符串扩展方法
  • 参数默认值
  • 剩余参数
  • 展开数组
  • 对象字面量增强
  • Promise
  • Promise链式调用

数组解构

javascript">const arr = [100, 200, 300];

const [a, b, c] = arr;
console.log(a, b, c);

const [, , d] = arr;
console.log(d);

const [e, ...rest] = arr;
console.log(rest);

const path = '/a/b/c';
const [, f, g, h] = path.split('/');
console.log(f, g, h);

对象解构

javascript">var age = 20;
const obj = {
    name: 'zhang',
    age: '18',
    fullName: function (a) {
        console.log(a);
    },
    fullAge: function () {
        console.log(this.age);
    }
}


const { name: objName, age } = obj;
console.log(objName, age);

const { fullName, fullAge } = obj;
fullName(1);
obj.fullAge();//18
fullAge();//20

模板字符串

javascript">const str = `hello`;
console.log(str);

const myName = "ton";
const msg = `hey,${myName}`
console.log(msg);

带标签的模板字符串

javascript">const str = console.log`hello World`;

const name = 'tom';
const gender = true;

//strings 为非插值语法的包含静态内容的数组
function myTagFunc(strings,name,gender){
    // console.log(strings,name,gender);
    const sex = gender ? 'man':'woman';
    return strings[0] + name + strings[1] + sex + strings[2];
}

const result = myTagFunc`hey,${name} is a ${gender}`;
console.log(result);

字符串扩展方法

javascript">const msg = 'Error: foo is not defined.'
console.log(
    //是否以该字符串开头
    msg.startsWith("Error"),
    //是否以该字符串结尾
    msg.endsWith("."),
    //是否包含该字符串
    msg.includes("foo")
);

参数默认值

javascript">//enable只会在调用时没有传递实参时赋值
function foo(bar,enable = true){
    console.log("1111");
    console.log(enable);
}
foo();

剩余参数

javascript">// function foo(){
//     //参数数组
//     console.log(arguments);
// }

function foo(...args){
    //参数数组
    console.log(args);
}
foo(1,2,3)

展开数组

javascript">const arr = ['1','2','3'];
console.log(...arr);

对象字面量增强

javascript">const bar = '123';

const obj = {
    foo:123,
    // bar:bar,
    bar,
    // method1:function(){

    // }
    method1(){
        console.log('method1');
    },

    [Math.random()] : 123,

    [bar] : 123
}

console.log(obj);

//计算属性名
obj[Math.random()] = 123;

Promise

javascript">const p = new Promise((resolve, reject) => {
    setTimeout(() => {
        // console.log("数据");
        resolve("数据");
    }, 1000)
})
//then方法返回一个Promise对象 对象状态由回调函数的执行结果决定
//如果回调函数返回的是非promise类型的属性,状态为成功,返回值为对象的成功的值
const result = p.then(value => {
    console.log(value);
    // 1.非promise类型的值
    // return "ok";

    // 2.是promise对象
    //新的promise的状态决定then方法返回的promise状态
    // return new Promise((resolve,reject)=>{
        // resolve('succ');
        // reject('error');
    // })

    // 3.抛出错误
    throw new Error('出错了')


}, reson => {
    console.warn(reason);
})
console.log(result);

Promise链式调用

javascript">const fs = require("fs");

const p = new Promise((resolve, reject) => {
    fs.readFile("./book1.md", (error, data) => {
        // console.log(data.toString());
        resolve(data);
    });
});
p.then(value => {
    // console.log(value);
    return new Promise((resolve,reject) => {
        fs.readFile("./book2.md",(error,data) => {
            resolve([value,data]);
        });
    });
}).then(value => {
    return new Promise((resolve,reject) => {
        fs.readFile("./book3.md",(error,data) => {
            value.push(data);
            resolve(value);
        });
    });
}).then(value => {
    console.log(value.join());
})


http://www.niftyadmin.cn/n/1154763.html

相关文章

Java的Graphics中drawImage与drawLine的坐标区别

drawImage复制的区域是 dx1 < x < dx2,dy1 < y < dy2 drawLine绘制区域是 dx1 < x < dx2,dy1 < y < dy2转载于:https://www.cnblogs.com/TLightSky/p/3244537.html

php curl 请求api 接口

官方文档curl : http://www.runoob.com/php/php-ref-curl.html php开启curl : ① 打开 php.ini 文件 extensionphp_curl.dll // 去掉前面的分号 ② 检查php.ini的extension_dir值是哪个目录&#xff0c;检查该目录有无php_curl.dll&#xff0c;如果没有的请下载php_curl.dl…

改变数组排序实现轮播图原理

原理示意图 具体思路就是将数组最后一项的位置移到第一项的位置&#xff0c;其余项的位置也向后移。 数组改变代码 //装图片的盒子数组const carouselItems document.getElementsByClassName("carousel-item");//盒子数组长度let length carouselItems.length;//…

Android ScrollView 使用注意事项

2019独角兽企业重金招聘Python工程师标准>>> 要想达到这样的效果 <ScrollView xmlns:android"http://schemas.android.com/apk/res/android" android:id"id/scroller" android:layout_width"fill_parent" android:layout_height&…

基于geotools的(两个)SHP要素变化提取方法预研

文章版权由作者李晓晖和博客园共有&#xff0c;若转载请于明显处标明出处&#xff1a;http://www.cnblogs.com/naaoveGIS/ 1. 背景 我们用遥感的手段进行卫星特征提取、多幅影像间的特征变化提取的案例越来越多&#xff0c;尤其在深度学习算法越发成熟以及诸如阿里天池大赛这些…

音乐播放器轮播图看见图片向前移动的解决

carousel.js getNext()方法 newArr.forEach((item, i) > {if (i 0) {// console.log("item",item.style)item.style.tranform translateX(${-width * (length - 1)}px);//移动到第一项的元素透明度为0item.style.opacity 0;// item.styleconsole.log("it…

UVA 1424 \ uvalive 4256 Salesmen 简单DP

题意&#xff1a; 给一个无向连通图&#xff0c;和一个长度为L的序列。任务是修改序列上的某些数使得每相邻两个数相等或在图上是两个相邻的点。最少需要修改几个数&#xff1f; 用dp[n][fa]表示当第n1个数是fa时前n个数最少要修改几次 用邻接矩阵存图&#xff0c;补上g[i][i]1…

[八分之一的男人]POJ - 1743 后缀数组 height分组 带详解

题意:求最长不可重叠的相同差值子串的长度 这道题算是拖了好几个月,现在花了点时间应该搞懂了不少,尝试分析一下 我们首先来解决一个退化的版本,求最长不可重叠的相同子串(差值为0) 比如\(aabaabaa\), 那么所求的子串有\(aab,aba,baa\)三个 如何求?不妨枚举.枚举是否有长度为\…