javascript初始化为undefined或null或""

Kir*_*ran 7 javascript undefined

在我开始学习时,Java脚本有许多虚假的值.我有一个程序从服务获取值并加载到这样的数组:

function loadNames() {
    Global.names = // what should I use here? undefined, null, "", 0, {} or anything else
    var lnames = getLNames(); // this is doing some magic
        if ( lnames.length !== 0 ) {
            Global.names = new Array();
            for ( var i = 0; i < lnames.length; ++i)
                Global.names[i] = lnames[i];
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道重置Global.names的正确方法.这里最合适的是什么?在代码中我只想检查一下if ( Global.names )

PS:我不能将返回值带入Global.names,因为返回的对象稍后会被销毁.因此,我需要做一个深层复制

谢谢

kar*_*ins 12

取自JavaScript:好的部分:

"if语句根据表达式的值改变程序的流程.如果表达式是真的,则执行then块.这是假值:

  • 空值

  • 未定义

  • 空字符串''

  • 数字0

  • 数字NaN"

所以基本上如果你将var设置为这些值中的任何一个,你就能够做一个if(var){...}


Ion*_*opa 6

我认为你应该初始化 GLobal.names = []; 而不仅仅是检查是否Global.names.length != 0.如果要重置它,只需再次将其设为空数组.


ic3*_*3rg 5

我认为你最好将它初始化为一个数组并测试为

if ( Global.names.length )
Run Code Online (Sandbox Code Playgroud)

此外,如果您只是将字符串存储在数组中,则可以将函数简化为

function loadNames() {
  Global.names = getLNames().concat();
}
Run Code Online (Sandbox Code Playgroud)