我如何检查一个变量,如果它是空或未定义,空和未定义之间的区别是什么? ==和===之间的区别是什么(很难搜索谷歌“===”)?


当前回答

尝试不同的逻辑。你可以使用下面的代码检查所有(4)条件验证,如不null,不空白,不定义,不为零,只使用这个代码(!(!(变量)))在javascript和jquery。

function myFunction() {
var data;  //The Values can be like as null, blank, undefined, zero you can test

if(!(!(data)))
{
   //If data has valid value
    alert("data "+data);
} 
else 
{
    //If data has null, blank, undefined, zero etc.
    alert("data is "+data);
}

}

其他回答

如果你的(逻辑)检查是否定的(!),你想捕获JS的null和undefined(因为不同的浏览器会给你不同的结果),你会使用限制性较低的比较: 例如:

var ItemID = Item.get_id();
if (ItemID != null)
{
 //do stuff
}

这将捕获null和undefined

未定义的

这意味着变量还没有初始化。

例子:

var x;
if(x){ //you can check like this
   //code.
}

等于(= =)

它只检查值是否等于非数据类型。

例子:

var x = true;
var y = new Boolean(true);
x == y ; //returns true

因为它只检查值。

严格等于(= = =)

检查值和数据类型是否相同。

例子:

var x = true;
var y = new Boolean(true);
x===y; //returns false.

因为它检查数据类型x是一个基本类型,y是一个布尔对象。

差别很细微。

在JavaScript中,未定义的变量是一个从未声明或从未赋值的变量。假设你声明var a;例如,a将是未定义的,因为它从未被赋值。

但如果你赋值a = null;那么a现在是空的。在JavaScript中,null是一个对象(如果你不相信我,可以在JavaScript控制台中试试typeof null),这意味着null是一个值(事实上,甚至undefined也是一个值)。

例子:

var a;
typeof a;     # => "undefined"

a = null;
typeof null;  # => "object"

这在函数参数中很有用。您可能希望有一个默认值,但可以考虑null。在这种情况下,你可以:

function doSomething(first, second, optional) {
    if (typeof optional === "undefined") {
        optional = "three";
    }
    // do something
}

如果你省略了可选参数doSomething(1,2),那么optional将是“three”字符串,但如果你传递doSomething(1,2, null),那么optional将是null。

至于equal ==和strict equal ===比较器,第一个是弱类型,而strict equal也检查值的类型。这意味着0 == "0"将返回true;而0 === "0"将返回false,因为数字不是字符串。

您可以使用这些操作符来检查undefined和null之间的值。例如:

null === null            # => true
undefined === undefined  # => true
undefined === null       # => false
undefined == null        # => true

最后一种情况很有趣,因为它允许你检查一个变量是否为undefined或null。

function test(val) {
    return val == null;
}
test(null);       # => true
test(undefined);  # => true

广告1。Null不是全局对象属性的标识符,不像undefined可以

让x;/ /定义 让y =零;/ /空 让z = 3;//有值 // 'w' //未声明 If (!x) console.log('x为空或未定义'); 如果(!y) console.log('y是空的或未定义的'); If (!z) console.log('z为空或未定义'); Try {if(w) 0} catch(e) {console.log('w is undefined ')} // typeof不抛出未声明变量的异常 If (typeof w === 'undefined') console.log('w is undefined');

广告2。===检查值和类型。==不需要相同的类型,并在比较之前进行隐式转换(使用. valueof()和. tostring())。这里你有所有(src):

if

==(否定!=)

===(它的否定!==)

我如何检查一个变量,如果它是空的或未定义

检查一个变量是否有一个有效值,就像这样:

if(variable)

如果变量不包含:

零 未定义的 0 假 ""(空字符串) 南