es6 总结知识点

1. let  和 const

  只在代码块中有效  {}   js块级作用域。

const 定义的对象是可以改变其属性的 

const a =[], b={} ;
a.push(1);
b.a=1;

// a [1]    b   {a:1}

 

 块级作用域 let  const  的特点

{
  let a="outer_a",
        b="outer_b";

  if (true){

      let a = "inside_a";
          b = "inside_b";
  }
     console.log(a,b)//outer_a   inside_b
}        

2. 字符串扩展  includes()  代替 indexof();

let s = 'Hello world!';
s.includes('o') // true

3. 箭头函数

var a = (val)=> val;
var b = (a,b)=>{
  if(a>b){ return a}  
    
}

4. 函数默认值 (必须在后面开始往前 中间不能穿插没有默认值的情况 ) 

  参数默认值不是传值的,而是每次都重新计算默认值表达式的值。

  (a,b=1,c) ❌

 

var fun = (a=1,b=2,c=a+b)=>{
      console.log(a,b,c)
    }

    fun()  //1 2 3
    fun(2) //2,2,4

 

5.数组的扩展 

  5.1 扩展运算符 ...   (该运算符主要用于函数调用)

    将数组转为 逗号隔开的 序列。

    

...[1,2,3]  //1,2,3

[...[1,2,3,4],..[5,6,7]]   //[1,2,3,4,5,6,7];

[...[[12],3],[4]] // [ [1,2],3,4 ]

[...[], 1]  // [1]

  

//可以转化伪数组 

[...arguments] Array.prototype.slice.call(arguments)
//效果一样
//合并数组

a.concat(b) [...a,...b]

 5.2  代替 apply  方法  的 参数

  fun(null,array)  es6写法 fun(...array)

5.3  解构赋值

  

const [first,...array]  = [1,2,3];

console.log(first) // 1
console.log(array) //[2,3]


const [first1,...array1]  = [];
console.log(first1) // undefined
console.log(array1) //[]


const [first2,...array2]  = [1];
console.log(first1) // 1
console.log(array2) //[]

扩展符号 赋值只能在最后面一位(只能有一个并且在最后),否则报错  Uncaught SyntaxError: Rest element must be last element

  

//字符串操作

"hello".split("")   // ["h","e","l","l","o"]
[..."hello"]  // ["h","e","l","l","o"]

 

5.4  Array.from(); 将2种对象转为数组;
  5.4.1: array-like-object:   不是数组,但是有 length 属性,且属性值为非负 Number 类型  ( arguments  ,nodeList ) 

  5.4.2: 可遍历对像

5.5   Array.of(); 将一组值转换为数组  总是返回参数组成的数组,,和Array()有一定差别。

  

Array(1) // [empty]  

Array.of(1) // [1] 

i

 

6 对象的扩展

  6.1  对象属性和方法的简写

  

var x=1;
var obj = {x}  //{"x":1}


var objFun = {
    method:function(){return true;} ,
    methods(){return true;} 
}

7 Set和Map

  Set:类似于数组,但是成员是唯一的。Set  本身是构造函数 用来生成 Set  数据结构。

  

const s = new Set([1,2,3,1,2,3]);
[...s]  //[1,2,3]   对对象无效。

[...new Set(array)]  //简单去重 

  Set内部判断相等用的是“===” (但是有一个点是 NaN Set认为相等)  所以 由于两个空对象 是不相等的。  Set  视为2个值

  7.1 Set  的方法

    

var s = new Set([1,2]);
s.add({})  //返回set本身;
s.add({})

s.delete(1)  //返回布尔值 是否成功   true
s.delete({})  //false


s.has(2)  //返回布尔值 是否包含   true
s.has({})  //false

s.clear() //清除所有成员没有返回

  7.2 Set遍历操作   keys(); values(); entries(); forEach()

  7.3 WeakSet  :成员只能是对象;不能遍历;

 

8. Map: 键值对集合,传统的键都只能是字符串;  Map的键可以是对象

  

posted @ 2018-11-14 15:52  musroom  阅读(162)  评论(0)    收藏  举报