关于ES6(一,let和const)

ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范,ES6 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。

let、const 和 block 作用域

let 允许创建块级作用域,ES6 推荐在函数中使用 let 定义变量,而非 var,

使用let声明的变量,具有块级作用域,有且仅有let声明的才有此特性:

if (true) { 
     let a = 10;
 }
console.log(a) // a is not defined

可以看到,let在这个if的作用域中,则不会在if的作用域之外生效.

另外,let声明的变量在作用域中不受外界定义的影响:

 let a=50
if(true){
    let a=10
    console.log(a)//输出10
}

let 小结:

  • let关键字就是用来声明变量的

  • 使用let关键字声明的变量具有块级作用域

  • 在一个大括号中 使用let关键字声明的变量才具有块级作用域 var关键字是不具

备这种条件

  • 防止循环变量变成全局变量

  • 使用let关键字声明的变量没有变量提升

  • 使用let关键字声明的变量具有暂时性死区特性

  • 来说说const吧

  • 同样在块级作用域有效的另一个变量声明方式是 const,它可以声明一个常量

    所谓常量,就是不能再被改变的量,并且使用const声明必须赋值,否者会报错:

       

    const L = 3;
    L = 100; // Assignment to constant variab

    但在这种情况是例外的:

  • const ary = [100, 200];
    ary[0] = 'a';
    ary[1] = 'b';
    console.log(ary); // ['a', 'b']; 
    ary = ['a', 'b']; // Assignment to constant variable.

    可以通过数组定义改变数组内的值,但改变之后,仍不可再改变否则仍会报错

posted @   不知名代码小白  阅读(68)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示