貌似加var不加都可以,但这两个有啥区别呢?
declared variables are constrained in the execution context in which they are declared, undeclared variables are always global
declared variables are created before any code is executed, whereas undeclared variables do not exist until the code assigning to them is executed
declared variables are a non-configurable property of their execution context (function or global), undeclared variables are configurable (e.g. can be deleted)
declared variables 即你题目中加了
var
关键字的变量
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
1.在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量。
使用var定义
不使用var定义
2.在全局作用域下,使用var定义的变量不可以delete,没有var 定义的变量可以delete.也就说明隐含全局变量严格来说不是真正的变量,而是全局对象的属性,因为属性可以通过delete删除,而变量不可以。
3.使用var 定义变量还会提升变量声明,即
使用var定义:
不使用var定义:
这就是使用var定义的变量的声明提前。
4.在
ES5
的'use strict'
模式下,如果变量没有使用var定义,就会报错
。