ES6 let 和const

ES6 李丽红
文章标签: ES6

let命令

关于let:

1.没有预编译,不存在变量提升,没有定义使用,会报错

         2.同一个作用域里,不能重复定义变量

         3.for()里面时父级作用域,{}里面时子级作用域

{
let a="我的"; //用let声明的变量具备块级作用域
var b=10; //var声明,全局作用域
}
console.log(b); //10
console.log(a); //error
{
//let声明,同意作用域不能有同名变量
var age=18;
var age=20;//OK
let ages=20;
// let ages=21 //error
}
var age=20;
function run() {
age=age+20; //TDZ 暂时性死区
console.log(age); //报错
let age=10;
}
run();
//块级作用域
for (let i=0;i<3;i++){ //父级作用域
let i=8;//子级作用域
console.log(i);//8
} var arr=[];for(var i=0;i<10;i++){ arr[i]=function () { console.log(i); } } (arr[1])(); // 10 var arr1=[];for(let i=0;i<10;i++){ arr1[i]=function () { console.log(i); } } (arr1[1])(); //1

const定义常量

1.const声明的常量的值一旦声明不可更改;

2.必须在声明时同时赋值,不能后赋值

const arr=["a","b"];

arr.push("orange");
console.log(arr);
//Object.freeze(对象)

const arr1=Object.freeze(["a","b"]);
arr1.push("c");
console.log(arr1); //报错

还能输出{{restrictNumber}}个字符  
  • {{reply.author}}

    {{CommonUtil.formateDate(reply.ac_CommentDate).shortTime}}
  • 回复了{{Comments.author}} :