简单的es6总结(常用的)

1、let和const;

let:用来声明变量,类似var,不过let声明变量只在代码块内有效(和Java、c#等后台语言声明变量一样)。

    for(let i=0;i<3;i++){
        console.log(i)
    }
    console.log(i);//会报错i未定义

使用var定义是不会报错,var定义,实际上只存在函数作用域和全局作用域(要么在方法里面的,要么就是全局的),而let是有代码块作用域的(大括号),

let不存在变量名提升,先使用,后声明,会报错;var声明会输出undefined。

会存在暂时性死区(就是不能在代码块中,使用let或const声明,在声明前使用了,会报错)

const:常量,不能重新声明修改;不过声明的是对象、数组等可以修改里面的值和属性

const a={name:"long",age:18}
    a.age=20
   console.log(a)

  const b=[1,2,3]
    b[0]=5
   console.log(b)

2、解构赋值

就是两边结构类似,按照类型解构获取值;

var [,name,] =["long","jack","Tom"]//左右结构相似
 console.log(name)

3、字符串处理

模板字符串:

var name="jack";
    let str=`我的名字是${name}!`
    console.log(str)

获取字符串是否包含某人字符 indexOf():找到字符首次出现位置,没有返回-1;includes():返回true或false

4、参数默认值、不定参数、拓展参数
    默认参数:
    a)以前使用或赋默认值:function(value){var name=value||" 默认值"}
    b)es6在方法括号直接赋默认值function(value=" 默认值"){var name=value}
   不定参数:
    a)参数不固定:function  count(a,b,...rest){}:如果调用: count(1,2,3,4,5,6):其中的参数,a=1,b=2,rest=[3,4,5,6]
   拓展参数:
    a)组装数组:var people=['Wayou','John','Sherlock'];  var pere=[...people,"aaa","bbb"]  console.log(pere) //["Wayou", "John", "Sherlock", "aaa", "bbb"]

es5中使用arguments:

       //arguments对象(function中参数数组,可多个参数。模拟重载)
        function test() {
           var dd= arguments.callee;
           console.log(dd)
            for (var i = 0; i < arguments.length; i++) {
                alert(arguments[i]);

            }

        }
        test("name", "age")

5.对象相关:
    json对象:key和value相同简写:{name:name},写为{name}
     Object.assign() 对象浅复制;只能复制一层,想多层复制,不相互影响必须一层一层的复制。例如:
               var oba={a:1,b:{name:"long",age:19}}
                const obj=Object.assign({},oba)
                obj.b=Object.assign({},oba.b)

                obj.b.age=10;
               oba.b.name="dddd"
                console.log(oba)//{a:1,b:{name:"dddd",age:19}}
                console.log(obj)//{a:1,b:{name:"long",age:10}}

6、for of:输出的是值
    var a=["a","b"] ;for (let v of a){console.log(v)}

7、数组相关:

a)扩展运算符:var z=[1,2,3]
                function tes(a,b,c){
                    console.log(a+b+c)
                        }
                    tes(...z)
b)扩展运算用法:
        数组中最大值:var a=[22,33,11,21];  es5:Math.max.apply(null,a)  返回33;  es6:Math.max(...a)  返回33
        push函数:var a=[1,2,3];b=[5,6]: es5:Array.prototype.push.apply(a,b)//讲一个数组添加到另外一个数组
                        es6:a.push(...b)
        数组的克隆:var a=[1,2,3]: es5:采用的concat,数组的拼接,拼接一个空值:var b=a.concat();
                           es6:const a=[1,2,3]; const b=[...a];也可以拼接;const c=[11,22]  ; const d=[..a,...c]
                          (都是浅克隆,数组里面如果包含对象,也是指向同一个地址)
        与解构赋值结合:const [first, ...rest] = [1, 2, 3, 4, 5] ; first // 1  ;rest  // [2, 3, 4, 5]
                            const [first, ...rest] = [];first // undefined;  rest  // []
                            const [first, ...rest] = ["foo"];  first  // "foo"   rest   // []
        字符串:将字符串切割成数组
                          [...'hello']   结果:[ "h", "e", "l", "l", "o" ]

         

猜你喜欢

转载自blog.csdn.net/qq_40262090/article/details/81287180