• 常用es6语法总结


    一.let ,var,const

    var没有块级作用域,定义后在当前闭包中都可以访问,如果变量名重复,就会覆盖前面定义的变量,并且也有可能被其他人更改。

    for (var i = 0; i < 3; i++) {
         setTimeout(function () {
             alert(i);
         }, 0);
     }
    

    结果会打印3次3,原因是var 没有块级作用域,而let有自己的块级作用域,所以不会出现这种情况。

    使用 let 定义的变量在大括号的外面是访问不到的。使用let的好处是

    实现块级作用域

    if(true){
        let name = 'zfpx';
    }
    console.log(name);// ReferenceError: name is not defined
    

      

    不会污染全局对象

    if(true){
        let name = 'zfpx';
    }
    console.log(window.name);
    

     结果 undefined

    let 重复定义会报错,不存在变量的预解释

    const可以去声明一个常量,常量一旦赋值就不能再修改了

    这种情况是可以改的:

    const names = ['zfpx1'];
    names.push('zfpx2');
    console.log(names);
    

    不同的块级作用域可以多次定义

     

    const A = "0";
    {
        const A = "A";
        console.log(A)
    }
    {
        const A = "B";
        console.log(A)
    }
    console.log(A)  

    二.解构

    1 解析数组

    var [name,age] = ['zfpx',8]; console.log(name,age);//zfpx  8]

    2.嵌套赋值

    let [x, [y], z] = [1, [2.1, 2.2]];
        console.log(x, y, z);
    
        let [x, [y,z]] = [1, [2.1, 2.2]];
        console.log(x,y,z);
    
        let [json,arr,num] = [{name:'zfpx'},[1,2],3];
        console.log(json,arr,num);//1 2.1 undefined 1 2.1 2.2 { name: 'zfpx' } [ 1, 2 ] 3

    3.省略负值

    let [, , x] = [1, 2, 3];
    console.log(x);
    

    4.解构对象

    var obj = {name:'zfpx',age:8};
    //对象里的name属性的值会交给name这个变量,age的值会交给age这个变量
    var {name,age} = obj;
    //对象里的name属性的值会交给myname这个变量,age的值会交给myage这个变量
    let {name: myname, age: myage} = obj;
    console.log(name,age,myname,myage); //zfpx 8 zfpx 8 

    四。字符串

    模板字符串用反引号(数字1左边的那个键)包含,其中的变量用${}括起来

    var name = 'zfpx',age = 8;
    let desc = `${name} is ${age} old!`;
    console.log(desc);
    
    //所有模板字符串的空格和换行,都是被保留的
    var str = `<ul>
    <li>a</li>
    <li>b</li>
    </ul>`;
    console.log(str);
    

      

     

      

     

     

  • 相关阅读:
    nginx 开启 gzip 压缩
    React Native 开发豆瓣评分(八)首页开发
    flutter报错--ProcessException: Process... gradlew.bat ...exited abnormally
    React Native 开发豆瓣评分(七)首页组件开发
    React Native 开发豆瓣评分(六)添加字体图标
    React Native 开发豆瓣评分(五)屏幕适配方案
    随笔
    MySQL的安装与配置
    mybatisXMLsql
    数据类型转换
  • 原文地址:https://www.cnblogs.com/smdb/p/11359673.html
Copyright © 2020-2023  润新知