复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25/* 当前作用域内的声明都会提升到作用域的最前面,包括变量和函数的声明 注意: 只是提升声明 不提升赋值和函数表达式的函数体 优先级: 语言内置(this、 arguments) -> 形参 -> 函数声明 -> 变量声明 根据优先级 后声明的会覆盖前面声明的同名变量 不管其类型是什么 */ var hello="hello"; (function(){ console.log(hello); var hello="hello world"; })(); // 输出 undefined // 以上代码等价于 // var hello="hello"; // (function(){ // var hello; // 所以是undefined // console.log(hello); // hello="hello world"; // })();
这也就是为什么js代码编写过程中, 特意将变量放在函数体的顶部,而不是将声明靠近放在使用变量之处。 这种做法使得源代码非常清晰的反映了真实的变量作用域和执行顺序。
转载于:https://www.cnblogs.com/mushishi/p/5804746.html
最后
以上就是大意芹菜最近收集整理的关于变量声明提前的全部内容,更多相关变量声明提前内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复