js-var与let

var

使用 var 声明的变量具有函数作用域或全局作用域(如果在函数外部声明)。这意味着在 for 循环外部,仍然可以访问到使用 var 声明的循环变量 i。

javascript 复制代码
for(var i = 0; i < 3; i++){
    console.log(i)
}
console.log(i)
0
1
2
3

let

使用 let 声明的变量具有块作用域,它只在其被声明的块(在这种情况下是 for 循环体)内部可见。一旦退出循环,i 变量就不再可用。

javascript 复制代码
for(let j = 0; j < 3; j++){
    console.log(j)
}
console.log(j)
0
1
2
ReferenceError: j is not defined
相关推荐
wycode几秒前
Vue2实践(1)之用Vue.extend做一个函数调用的Dialog
前端·vue.js
Forward♞1 分钟前
Qt——实现”Hello World“、认识对象树与Qt坐标系
开发语言·qt
鹏多多2 分钟前
js使用History.replaceState实现不刷新修改浏览器url
前端·javascript·浏览器
AliciaIr2 分钟前
深入理解CSS居中:面试必备的布局技巧与底层原理(下)
前端·css
晴空雨2 分钟前
关于箭头函数和 ES6 的继承与 ES5 组合寄生式继承的区别
javascript
草莓熊Lotso3 分钟前
《吃透 C++ 类和对象(中):拷贝构造函数与赋值运算符重载深度解析》
开发语言·c++·经验分享·笔记·其他
今禾4 分钟前
JavaScript 响应式系统深度解析:从 `Object.defineProperty` 到 `Proxy` 的演进与优化
前端·javascript·面试
闲云野鹤_5 分钟前
HTML+CSS+CSS3学习笔记
前端
zzwar20096 分钟前
实现 Symbol.iterator 方法 让一个普通对象变成 可迭代对象(iterable)
前端
鹏程十八少6 分钟前
1. Android FrameWork之系统启动的流程:Zygote、SystemServer 与 Binder 的三角博弈
前端