美文网首页
ES6--let声明变量,const声明常量

ES6--let声明变量,const声明常量

作者: jingzizi | 来源:发表于2016-09-18 14:21 被阅读0次

ECMA2015(也称es6),在原先javascript语法基础上新增语法特征,浏览器对es6的语法支持还不够,需要借助babel解析工具(可在gulp的配置文件gulpfile.js中配置针对bable的命令);

关于作用域:除了全局作用域和函数内作用域,es6新增了块级作用域,即用{}包裹的代码块。块级作用域:内层变量和外层变量的值互不影响。内层无法读取外层,外层无法读取内层。

{

console.log(b); //报错,

{let a=12;let b=0;}

console.log(a) //报错,

}

ES6允许在块级作用域内定义函数(但在老的浏览器中还是报错,所以该特性还是尽量不用);

let:es6中声明变量新增的方式

特性:

①声明仅在所在的代码区块内有效;(es6新增块级作用域)

{let a=12} ;

alert(a); //报错,a is not define

该特性可用于在for循环中声明变量

for(let i=0;i<10;i++){} //变量i仅在循环体内部生效。

console.log(i) //i is not define

②不存在变量提升;

alert(a) //undefined

alert(b)// 报错, b is not defined

var a=12;

let b=11;

③暂时性死区;

在一段代码区块内,使用let或const声明变量,在变量声明前对变量的使用都会报错。即使在代码块外部有同名的全局变量。

var abc=100;

{

abc=23; //referenceError 声明前使用,报错

let abc; //当let或const在代码块内声明了,则在代码块中形成了封闭的区域,在该封闭区域内变量声明前的使用都会报错。

console.log(abc); //undefined

abc=10;

console.log(abc)//10

}

const命令:es6新增声明常量方式;

特性:

①声明时就需要赋值,否则报错;常量一旦声明不可以重新赋值,否则报错;

②在所在的代码区块内有效;(同let);

③不存在变量提升;

④存在暂时性死区;

⑤声明复杂型常量时,const仅仅保存了地址,常量中的属性还是可以变更的;

例如:const obj={};

const arr=[];

arr.push(12);

arr.length=0;

arr  = ['hello']  //报错

obj.a=1;

console.log(obj.a)   //  1

obj={'b':2}  //报错

(可冻结对象,冻结后对象属性将不能修改;Object,freeze({'需要冻结的对象参数'}));

REPL:nodejs中的交互运行环境,可执行javascript语句。

全局对象;原有javascript的全局对象是window,给全局对象的属性赋值相当于声明一个全局变量。

在ES6中,let和const命令声明的变量和常量不再是全局对象的属性。

var a=1;

let b=2;

window.a   //1

window.b  // undefined

相关文章

  • ES6--let声明变量,const声明常量

    ECMA2015(也称es6),在原先javascript语法基础上新增语法特征,浏览器对es6的语法支持还不够,...

  • ES6常用及关键特性

    1、变量声明 let 和 const 其中let表示变量,const表示常量,const声明的变量被认为是常量,也...

  • es6 基础撸一遍(期续更新中)

    const 之前用var声明变量,变量想怎么改就怎么改,这里const关键字也是声明变量的,不过声明的是常量,常量...

  • 工作中常用的ES6语法

    1. let和const let(变量)不会重复声明变量-可以修改块级作用域 const(常量)不会重复声明常量-...

  • 2018-06-07深入浅出ES6(let与const)

    let和const都是声明(定义)用的,let是声明变量,而const是声明常量的。 变量:声明之后可以改变常亮:...

  • ES6基础

    变量声明var let 常量声明const const number = 1;let title = "详情页";...

  • ES6中的const及临时死区(Temporal Dead Zo

    const声明的是常量,声明的同时必须进行初始化。 在声明常量的同时必须赋值,不可声明变量后在赋值。 const声...

  • ECMAScript6学习笔记-D2 const命令

    const命令用来声明变量,但是与let不同的是const声明的是常量。一旦声明,常量的值便不可更改 const的...

  • ECMAScript6学习笔记-D2 const命令

    const命令用来声明变量,但是与let不同的是const声明的是常量。一旦声明,常量的值便不可更改 const的...

  • ES6-const

    const也用来声明变量,但是声明的是常量。一旦声明,常量的值就不能改变例子: const块级作用域: const...

网友评论

      本文标题:ES6--let声明变量,const声明常量

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