ES6

声明方式

let:变量不允许重复声明 允许重复赋值 可以防治变量泄露
const:常量 变量不允许重复声明,也不允许重复赋值

编码转换

charCodeAt() 获取编码
String.fromCharCode(编码) 能让编码转成字符

\u4e00 - \u9fa5:对应所有的汉字

repeat()

接受1个参数 参数就是重复几次咱们的字符串

includes()

  • 有点像indexOf()
  • 查找会返回 布尔值
  • 第一个参数 是要找的内容
  • 第二个参数 从第几位开始

startsWith()

  • 开头如果是你放入的第一个参数 就是true 不是就false
  • 第二个参数 从第几位开始

endsWith()

  • 第二个参数 从第几位结束

es6的字符串 变成了 ,${} 模版,就是为了使用模板

find()

eg:  [1,2,3,4].find(function (x,y,z){
        console.log(x,y,z);
    })
  • 第一个参数 循环出来 数组所有的值
  • 第二个参数 循环出来 下标
  • 第三个参数 循环出来 数组本身

箭头函数

  • 箭头函数和普通函数对比:
  • 几种不同形式的箭头函数:
 var f1 = () => 12;
 var f2 = x => x * 2;
 var f3 = (x, y) => {
    var z = x * 2 + y;
    y++;
    x *= 3;
    return (x + y + z) / 2;
};
解释:

只有在函数体的表达式个数多于1个,或者函数体包含非表达式语句的时候才需要用{..}包围。如果只有一个表达式,且省略了包围的{..}的话,则意味着表达式前面有一个隐含的return,如上图中代码展示的一样。
箭头函数总是函数表达式且是匿名函数表达式;并不存在函数声明。
箭头函数支持普通函数的所有功能,包括默认值,解构,rest参数

x = x => x;
console.log(x(1))//1
  • 第一个x是方法名
  • 第二个x是参数
  • 第三个x是返回值
//需要传参的时候就加括号
x = (x,y,z) => {
        console.log(1)
    }
x``//1
//箭头函数用于匿名函数
 [1,2,3,4].find((x,y,z)=>{
        console.log(x,y,z);
    })

//onclick的写法
 document["onclick"] = () => {
        document.body.style.background = 'red'
    }

()括号作为返回体

let foo = ()=>("aaaa");
console.log(foo());//aaaa

let foo = ()=>({
  a:"aaa",
  b:"bbb"
});
    console.log(foo());
//{
//   a:"aaa",
//   b:"bbb"
//}

延展参数

 function show(x=5,y=3) {
        console.log(x,y);
    };
    show();//x:5  y:3
    show(9,0);//x:9  y:0
//调用时不传参数就使用延展参数,否则正常使用传入的参数

 function show(x=5,y=[1,2,3]) {
        console.log(x,y);
    };
    show();//x:5  y:[1,2,3]

延展参数可以任何类型,josn,string……都可以

展开(spread)/收集(rest)运算符

展开(spread):
function foo(x,y,z) {
        console.log(x,y,z);
    }
    foo(...[1,2,3]);//1 2 3
  var a = [2,3,4];
  var b = [1,...a,5];
  console.log(b)//1 2 3 4 5

当...用在数组之前时(实际上时任何iterable),它会把这个变量‘展开’为各个独立的值

收集(rest)
function show(...x) { //
        console.log(x);//1,2,3,4,5,6,7  typeofx:object   x是数组
        console.log(arguments) //arguments不是数组
    };
     show(1,2,3,4,5,6,7);

收集所有的参数

解构赋值

对象解构
  var data = {a:1,b:2};
  let{a:a,b:b} = data;
  console.log(a,b);//1,2

如果属性名和要赋值的变量名相同可以简写为:

let{a,b} = data;
console.log(a,b);//1,2

注意:这里省略的部分是x:而不是:x
验证:

  var data = {a:1,b:2};
    let{a:xa,b:xb} = data;
    console.log(xa);//1
    console.log(xb);//2

    console.log(a)//报错,Uncaught ReferenceError: a is not defined
    console.log(b)
  • 赋值过程如下图

Promise

posted @ 2020-07-26 21:10  howareyou!  阅读(102)  评论(0)    收藏  举报