博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
if 和 for 声明变量的作用域
阅读量:4452 次
发布时间:2019-06-07

本文共 1181 字,大约阅读时间需要 3 分钟。

1.var在if语句内声明变量

console.log(name);  // 输出为bonlyif(true){    console.log(name); // 输出为bonly    var name="bonly";    console.log(name); // 输出为bonly}console.log(name); // 输出为bonly
console.log(name);  // 报错function aa(){    if(true){    console.log(name); // 输出为bonly    var name="bonly";    console.log(name); // 输出为bonly  }  console.log(name); // 输出为bonly}console.log(name); // 报错

小结:在if内用var声明变量,虽然if后面是块级作用域,但是var声明的变量不支持块级作用域,该变量会向上冒泡到支持的作用域范围,也就是函数作用域和全局作用域

2.var在for语句内声明变量

console.log(i); // 输出为undefinedfor (var i=0;i<5;i++) {    console.log('内部获取的'+i);}console.log('外部获取'+i); // 输出5

小结:在for循环内用var声明变量,该变量也是全局的

3.let在if语句内声明变量

console.log(name); // 空,没有报错if(true){    let name="bonly";    console.log(name); // bnonly}console.log(name); // 空,没有报错  // 千万注意,别以为是文档定义错了,这里没有报错的原因是window对象上有name属性,并且为“”,坑不坑
console.log(aaa); // 报错if(true){    console.log(aaa); // 报错    let aaa="bonly";    console.log(aaa); // bnonly}console.log(aaa); // 报错

小结:在if内用let声明变量,该变量是局部的,并且没有变量提升

4.let在for语句内声明变量

console.log(i); // 报错for (let i=0;i<5;i++) {    console.log('内部获取的'+i);}console.log('外部获取'+i); // 报错

小结:在for内用let声明变量,该变量是局部的,并且没有变量提升

转载于:https://www.cnblogs.com/bonly-ge/p/9262715.html

你可能感兴趣的文章
Java判断语句中判断条件的执行顺序
查看>>
Windows平台下tomcat+java的web程序持续占cpu问题调试
查看>>
OO第四次博客作业!
查看>>
HDU 吉哥系列故事——完美队形II 騰訊馬拉松初賽第二輪D題
查看>>
c++学习-继承
查看>>
[转]SQL Server 性能调优(io)
查看>>
设计模式学习-每日一记(6.原型模式)
查看>>
不已0开头的数字正则
查看>>
HTML撑起浮动子元素得父元素高度
查看>>
LeetCode--018--四数之和(java)
查看>>
Redis消息队列
查看>>
电商网站架构设计
查看>>
http://jingyan.baidu.com/article/4dc40848e7b69bc8d946f127.html
查看>>
WCF netTcp配置
查看>>
数据类型转换
查看>>
Nodejs学习笔记(2) 阻塞/非阻塞实例 与 Nodejs事件
查看>>
什么是FreeMaker
查看>>
设计模式学习笔记(总结篇:模式分类)
查看>>
算法笔记_075:蓝桥杯练习 最短路(Java)
查看>>
TCP的三次握手/建立连接
查看>>