var v = v || 10; var v = 0 || 10; var v = 5 || 10; var v = null || 10; 依次执行这四个语句,得到V的值分别是10、10、5、10。新手不太理解为什么,求解,感谢!
1 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
||为短路或,A||B的执行规则为:
1.A为true取A;
2.A为false取B
var v = v || 10;
执行顺序为先执行 var v
(变量声明提升);再执行v||10
,此时v
为undefined
,转化为布尔值为false
,则取10
,即将10
赋予v
。
var v = 0 || 10; var v = 5 || 10; var v = null || 10;
这三个自己分析一下,应该可以了。
补充一点。依次执行的话,同作用域内已声明过的变量是不会被重新声明的,即后三个var a
是不会被执行的,只会执行 v = ***
。
添加回答
举报
0/150
提交
取消