首先 先看一个循环的 数组 乍一看哈,这个可以么 还可以用const 来定义 比较有意思哈 再ng中提示我这样写,然后我就拿来研究了一下
for (const s of arr) {
console.log(s);
}
事实上他确实可以正常工作哈 因为每一次的迭代都会声明一个全新的key, 所有的赋值都是给一个新的变量赋值,而没有改变原来的值。那使用let 和 const 有什么区别吗? 当然有了,还是在于const 声明的变量不能重新赋值了,所以如果for-in 或for- of 中使用const 声明了变量( 如key), 循环体中,就不能给key 赋新值了,如果使用let ,那就无所谓了,想干什么就干什么,只不过for-in 或for-of 中,我们很少改变key 值,所以他们在实际使用时就没有什么区别了(这个答案比较中肯 https://www.cnblogs.com/SamWeb/p/10659352.html 原博主博客地址) 顺便也看下 es6得块级作用域 for (const elem of someArray) 这里再看一下 es6中的块作用域
正常定义俩个 同样的 常量是会报错的
const a=10;
const a=10;// 报错 a 已经定义了
利用块级作用域就可以解决
{
const a=10;
}
{
const a=10;
}
// 还有一点就是 使用 const 和let 定义的数据 并不会在 顶层对象window上
const a=10;
console.log(window.a); // undefined
还有一个小知识就是 数组也可以使用 indexOf(element) 方法 如果数组中有这个元素的话 返回数组中 所在的下标位置 没有返回 -1 并且对大小写 敏感哈 区分大小写的
var arr=["hello","world","VUE","vue","angular","react"];
console.log(arr.indexOf("VUE")); // 输出 2
|