ES6——魅力片之‘声明方式’

同样都是声明方式,要这么多能吃吗?

那么为什么ES6还新增了const 、let两种声明方式呢…

  1. 可以重复声明;
  2. 无法限制修改,(有的常量是不需要改变的,但是var不能满足);
  3. 没有快级作用域;
    **变量可以被重复声明是其他语言所不接受的,(虽然我也没用过几种语言,但是相信我,这是真的…)
    **无法限制修改,简直非人类嘛!!!人家代码中还不能有个固定不变、唯一存在的数学常量吗
    **没有块级作用域,这就让人寝食难安了,我在我自己的函数里边声明的变量,你再外面都拿得到,谁还睡得着
    以上种种…新的声明方式诞生了

1.所谓let

特点1:不能重复声明
使用var:

var a= 1;
var a = 2;
console.log(a)   //2

使用var,变量重新声明,覆盖原有

使用let:

let a= 1;
let a = 2;
console.log(a)   //text.html:51 Uncaught SyntaxError: Identifier 'a' has already been declared

**浏览器会很亲切的提示你:语法错误:a已经被声明过啦

特点2:块级作用域
使用var:

{
var a = 1;
}
console.log(a)   //1

上边也说了,var不规矩,声明了就是全局的,想拿就拿
使用let:

{
let= 1;
}
console.log(a)   //Uncaught ReferenceError: a is not defined

包裹在语法块中的变量在外部都是无法访问到的,例如函数中的,{}中的

特点3:变量可以重新赋值
这里就不举例了,字面意思,定义了的变量可以被重新赋值,这一点跟var没有什么区别。但是跟const 还是有区别

2.所谓const

特点:不能重复声明、 块级作用域
与let唯一不同的就是:cosnt一旦定义就不能重新赋值了
例如:

const a = 1;
         a = 2;
console.log(a)  //text.html:51 Uncaught TypeError: Assignment to constant variable.

浏览器会提示你:语法错误,不能赋值给变量

如上所示,可见js正在步入正统,未来越来越好…越来越强大,啧啧啧!!!

猜你喜欢

转载自blog.csdn.net/baidu_41604826/article/details/82805799