B.D*_*.D. 2 javascript global-variables iife
为什么下面的代码结果的记录b,同时a还是undefined?
(function(){ var a=b=5; })();
console.log('b:'+b);
console.log('a:'+a);
Run Code Online (Sandbox Code Playgroud)
因为var a=b=5;语句只定义局部a变量,实际上是解释为
var a = (b=5);
Run Code Online (Sandbox Code Playgroud)
等于
b = 5;
var a = 5;
Run Code Online (Sandbox Code Playgroud)
它分配5给全局b变量并定义局部a变量.
定义2个局部变量而不重复值的正确方法是
var b = 5, a = b;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1715 次 |
| 最近记录: |