以前的时候使用var 来定义循环的条件
不在推荐使用var 来变量这样的一个变量了
确实是可以进行定义的
遍历三次,会形成三层的作用域
不是进行重复的定义,因为用的还是原来的i
第一次定义的i 和 第二次定义的i 是不同的,因为是分别定义的i
这里的i 会进行++
在for循环中是不能使用const 来定义 i的
因为程序执行的时候会进行++ 的操作,但是const 只能进行一次初始化,就不能对它进行赋值了,所以这里是错误的
const 用来修饰不要修改的配置文件
在es6 中有另外一种对于数组的遍历
使用for...of 用来遍历对象,后面在讲迭代器
使用for.. of 来遍历数组
案例
let num = [
{ name: '星际传说', time: '120分钟' },
{ name: '奥奇传说', time: '60分钟' },
{ name: '李哥', time: '60分钟' }
]
// 使用普通的for循环进行遍历
for (let i = 0; i < num.length; i++) {
console.log("电影名是:" + num[i].name);
console.log("时长:" + num[i].time)
}
// 使用es6增强型的for循环
/*
这里取出的是每一个item(项)
*/
for (let key of num) {
console.log(key.name);
console.log(key.time)
}
使用的是node
for of 是進行了迭代,将每一项取出来,会将里面的值赋值给我
这里的写法可以使用const
增强型的写法
使用for of
暂时性的死区(TDZ)
这个叫做TDZ
在初始化项目的时候,在if中使用这样的变量
在一个代码中,如果使用let const 声明的变量,在访问之前,都是不能进行访问的
只要在内部声明了一个变量,在执行打印变量的时候,会有暂时性死区
在变量没有定义进行使用,是不能被访问的
先声明,后使用
let const var 的选择
var 体现出很多的特殊性
var 不是一个好的东西,都是历史残留的问题
在设计之处的时候,是有缺陷的,这些东西不是好的东西
编写更加规范的代码
会将里面的es6 的代码转换成 es5的代码,尽量使用list 和 const,推荐使用const
如果不想进行修改的话,使用const