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

时间:2011-04-01 22:58:32

标签: javascript

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

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

    var selection = getSelected();

    if (typeof(selection) !=='undefined') {
        alert(selection);
    }
});

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

3 个答案:

答案 0 :(得分:15)

请说:

if (selection) {
    alert(selection);
}

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

此外,在Javascript中,某些内容可以等于值undefined或实际上未定义(意味着,不存在此类命名对象)。 e.g。

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 */

如下面的评论所述,如果您不确定是否存在某些内容,则应首先使用typeof进行测试。

答案 1 :(得分:8)

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

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

if (!selection.isCollapsed) ...

答案 2 :(得分:3)

你可以简单地使用:

if (selection) {
  alert(selection);
}