2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > js中for循环作用域的问题(变量提升)

js中for循环作用域的问题(变量提升)

时间:2020-09-02 20:11:23

相关推荐

js中for循环作用域的问题(变量提升)

for循环定义的变量不管里面有多少函数,变量在里面的所有函数里面都是可以取到的。

js的变量提升(var是全局变量,同时只在定义的函数方法可以理解为局部变量)

var在for循环里面定义的变量其实也是全局变量

但是let就不一样的let在{}里面写的就是局部变量。

var i = 0;var i = 1;console.log(i);

//var全局变量没有块级作用域var list = [1, 2, 3, 4, 5, "laji"];for (var i = 0; i < list.length; i++) {console.log(i);function say() {console.log(i + "haha"); //下面的for循环写var,let的时候会输出未定义var i = "今年过年你回家吗?";console.log(i + "haha");}say();}

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><script>//var全局变量没有块级作用域var list = [1, 2, 3, 4, 5, "laji"];for (var i = 0; i < list.length; i++) {console.log(i + "我赌它只会输出一次");for (let i = 0; i < list.length; i++) {console.log(i + "haha"); //下面的for循环写var,let的时候会输出未定义 这次里面和外面都会循环5次// var i = "今年过年你回家吗?";console.log(i + "haha");// }}// console.log(i);// function say() {// console.log(i + "haha"); //下面的for循环写var,let的时候会输出未定义// var i = "今年过年你回家吗?";// console.log(i + "haha");// }// say();}</script></body></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。