ES6

作者: 瑟闻风倾 | 来源:发表于2020-07-07 17:20 被阅读0次

    1. var 优化为 let 和 const

    在ES6开发中,优先使用 const ,只有需要改变某一个标识符的时候才使用 let。

    (1) let(声明变量) —块级作用域

    • var(ES5):无块级作用域(如f和for)。
    • let(ES6):有块级作用域(如f和for)。

    ES5中仅函数有作用域,if/for都无作用域。ES5之前因为if和for都没有块级作用域,所以很多时候必须借助function的作用域来解决引用外面变量的问题(如for循环使用闭包来解决);ES6中加入来let,let有if和for的块级作用域。

    拓展:在IOS开发,使用swift语言时,var定义变量,let定义常量,建议尽量使用let。

    (2) const(声明常量) —使用和注意点

    • 在使用const定义标识符时,必须进行赋值
    • 一旦给const 修饰的标识符被赋值之后,不能修改
    • 常量的含义是指向的对象不能修改,但可以改变对象的属性
    <script type="text/javascript">
        const obj = {
            name:'liy',
            age:18
        }
       console.log(obj);
    
       obj.name = 'yang'
       obj.age = 19
       console.log(obj);
    </script>
    

    每个对象都指向唯一的内存地址。

    2. 对象(字面量)增强写法

    • 属性的增强写法
    <script type="text/javascript">
        const name = 'liy'
        const age = 18
        /* ES5写法 */
        /* const obj = {
            name:name,
            age:age
        } */
    
         /* ES6对象属性增强写法 */
         const obj = {
            name,
            age
        }
         console.log(obj);
    </script>
    
    • 函数的增强写法
    <script type="text/javascript">
        const name = 'liy'
        const age = 18
        /* ES5写法 */
        /* const obj = {
            name:name,
            age:age,
            eat:function(){
                console.log("吃饭");
            }
        } */
    
         /* ES6对象增强写法-属性和函数的增强写法 */
         const obj = {
            name,
            age,
            eat(){
                console.log("吃饭");
            }
        }
         console.log(obj);
    </script>
    

    拓展:JavScript的设计缺陷除了var之外,还有一个就是不能进行类型检测。microsoft公司开发的TypeScript和facebook开发的flow都能够实现类型检测,目发展的好的是TypeScript,但目前国内并没有流行。angular低版本使用的是JavScript,但angular高版本使用的是比ES6更高级的TypeScript(ts),能够进行类型检测。

    相关文章

      网友评论

        本文标题:ES6

        本文链接:https://www.haomeiwen.com/subject/bcaaqktx.html