如何使用javascript检查var是否为空?

Mik*_*ike 9 javascript

没有太多运气.我正在尝试确定var是否为空.

$('#content').mouseup(function() {

    var selection = getSelected();

    if (typeof(selection) !=='undefined') {
        alert(selection);
    }
});
Run Code Online (Sandbox Code Playgroud)

这样做是抓取用户选择的任何文本 - 但它显示一个空警报,即使用户只是在div上鼠标.

Jam*_*rgy 15

说啊:

if (selection) {
    alert(selection);
}
Run Code Online (Sandbox Code Playgroud)

如果定义了成员,非空,非假,非空字符串或非零,则Javascript中的简单true/false测试返回true.

此外,在Javascript中,某些东西可以等于值undefined或实际上是未定义的(意思是,不存在这样的命名对象).例如

var x = undefined;
alert(x===undefined); /* true; */
alert(x); /* false */
x=1;
alert(x); /* true */

alert(y===undefined); /* reference error - there's nothing called y */
alert(y); /* reference error */
alert(typeof y === "undefined"); /* true */
Run Code Online (Sandbox Code Playgroud)

正如下面的评论所指出的,如果你不确定是否存在某些东西,你应该先测试一下typeof.


Guf*_*ffa 8

您的代码对于检测未定义的值非常准确,这意味着即使没有选择,该函数也会返回某种值.

如果函数返回一个选择对象(如window.getSelection函数),则检查isCollapsed属性以查看选择是否为空:

if (!selection.isCollapsed) ...
Run Code Online (Sandbox Code Playgroud)