相关疑难解决方法(0)

理解JavaScript提升和truthy&falsy

我一直在阅读有关JavaScript吊装的消息.

Ben Cherry的JavaScript范围和吊装
Dmitry Soshnikov关于"吊装"的两个词

而且,更多关于JavaScript类型强制,真假测试: 真理,平等和JavaScript以及其他一些资源

在练习一些时,发现我遗漏了一些关于吊装的重要概念和一个变量'truthy&falsy.

1:'if'真实测试,带有重复变量声明

var foo = 1; 
function bar() { 
    if (!foo) { 
    alert('inside if');
        var foo = 10; 
    } 

} 
bar();
Run Code Online (Sandbox Code Playgroud)

O/P: inside if

怀疑: 'foo'值为'1',if(!foo)应该评估false并且不应该执行该块(引用来自上面的资源:提升仅影响var&function声明,但不影响执行).但为什么会显示该警报.如果我直接使用就不是这种情况false(如下面的no-tricks代码所示:代码片段#3)

2:'如果'真值测试没有重复变量声明

var foo = 1; 
function bar() { 
    if (!foo) { 
        alert('inside if');
    } 

} 
bar();
Run Code Online (Sandbox Code Playgroud)

o/p:没有输出; 意味着控制没有进入'如果'块
这是人们可以期待的

3:'if'使用带有重复变量声明的'false'

var foo = 1; 
function bar() { 
    if (false) { 
        alert('inside if');
        var foo = …
Run Code Online (Sandbox Code Playgroud)

javascript type-coercion truthiness hoisting

5
推荐指数
1
解决办法
1537
查看次数

标签 统计

hoisting ×1

javascript ×1

truthiness ×1

type-coercion ×1