块作用域
来源:互联网 发布:wine for mac 编辑:程序博客网 时间:2024/06/03 21:32
表面上看javascript并没有块作用域的相关功能。
一般来说for循环和if语句中定义的变量会被绑定在外部作用域。
with关键字:用with从对象中创建出的作用域仅在with声明中而非外部作用域中有效。
try/catch的catch分句会创建一个块作用域,其中声明的变量仅在catch内部有效。
let关键字:可以将变量绑定到所在的任意作用域中,通常是{..}内部。换句话说,let为其声明的变量隐式的劫持了所在的块作用域。
var foo=true;if(foo){ let bar=foo*2; bar=something(bar); console.log(bar);}console.log(bar);//ReferenceError
用let进行的声明不会在块作用域中进行提升。
{ console.log(bar);//ReferenceError let bar=2;}{ console.log(bar);//undefined var bar=2;}
除了let外,还有const,同样可以用来创建块作用域变量,但其值是固定的。之后任何试图修改值得操作都会引起错误。
var foo=true;if(foo){ var a=2; const b=3;//包含在if中的块作用域常量 a=3;//正常 b=4;//错误}console.log(a);//3console.log(b);//ReferenceError
阅读全文
0 0
- 块变量作用域
- 块级作用域
- 块级作用域
- 块级作用域
- 块级作用域
- 块级作用域
- 块作用域
- 函数作用域和块作用域
- javascript没有块作用域
- actionscript 块级作用域
- JavaScript块级作用域
- 35. 块级作用域
- 没有块级作用域
- 块级作用域变量
- Javascript块级作用域
- 没有块级作用域
- 没有块级作用域
- 理解ES6: 块作用域
- python笔记--集合
- Linux下安装mysql
- mysql 事物与锁
- 51Nod
- Gradle学习系列之一——Gradle快速入门
- 块作用域
- C语言笔记1
- lUOGU P1540
- PHP小白之路3--PHP之购物车模块设计
- 第4章 SQL Server Transact-SQL编程
- 自考导图两张
- SpringMvc简单入门程序
- 2017面试遇到的一些面试题
- 老师的纪念