除采用let和var新闻稿表达式,在ES6中还减少const新闻稿。const的犯罪行为与let完全相同,但有两个关键的差别,采用const 新闻稿表达式时要调用两个值,因此在新闻稿后无法修正那个值。假如修正const表达式的值将引致运转收起,比如:
const age=30;
age=31//15 Uncaught TypeError: Assignment to constant variable.
须要特别注意的是const和let那样都是快返回值,换句话说在块句子外部新闻稿的const表达式无法第一印象在块句子外部新闻稿的表达式,与此相反:
const name=”jsindexhtml”;
if(true){
const name=”hsindexhtml”;//无法收起
}
当然,我们仅无法修正const定义的的表达式。假如const引用的是对象,则无法受到次影响:
const name={
name:jsindexhtml,
age:31
};
name.age=30;
这段代码无法收起,因为const引用的是对象,name.age=30修正的是对象name的age属性。
我们无法采用const新闻稿for循环的迭代器表达式。
for(const i=0;i<5;i++){
setTimeout(()=>console.log(i),0);
}
假如我们for循环的迭代器表达式是两个常量,无法发生迭代,则只能采用const新闻稿,对于for in 和for of循环尤其关键:
let i = 0;
for (const j = 7; 0< i < 5;++ i) {
console.log(j);//
}
打印结果为7,但是这里存在两个问题,假如i的迭代形式为i++,将使循环体不断输出7,占用大量内存,是浏览器崩溃。所以所以在for循环谨慎采用const新闻稿迭代器表达式,将迭代形式设置为++i。
采用const定义遍历数组值和对象属性的迭代器表达式
数组:
for(const value of [1,2,3,4,5]){
console.log(value);//1、2、3、4、5
}
对象:
let person={name:”wang”,age:31,adress:”四川成都”}
for(const key in person){
console.log(key);//name、 age、adress
}