Web

ES6

2020-07-07  本文已影响0人  瑟闻风倾

1. var 优化为 let 和 const

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

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

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

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

(2) 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),能够进行类型检测。

上一篇下一篇

猜你喜欢

热点阅读