相关疑难解决方法(0)

变量=== undefined vs. typeof variable ==="undefined"

jQuery的核心风格指南建议两种不同的方法来检查一个变量是否被定义.

  • 全局变量: typeof variable === "undefined"
  • 局部变量: variable === undefined
  • 属性: object.prop === undefined

为什么jQuery对全局变量使用一种方法而对本地和属性使用另一种方法?

javascript jquery undefined

289
推荐指数
5
解决办法
8万
查看次数

为什么JavaScript中存在"null"值?

在JavaScript中,有两个基本上说'我不存在'的值 - undefinednull.

程序员未分配任何内容undefined的属性将是,但为了使属性成为必需null,null必须明确分配给它.

我曾经认为需要null因为undefined原始价值和null对象.它不是,即使typeof null会产生'object':实际上,两者都是原始值 - 这意味着既不能undefined也不null能从构造函数返回,因为它们都将被转换为空对象(必须抛出错误来宣告构造函数中的失败).

它们也都false在布尔上下文中进行求值.唯一真正的区别我能想到的是,一个计算结果为NaN,其他0的数字环境.

那么为什么会出现这两种情况undefined,null如果这只会让那些null在试图找出属性是否已经设置时错误检查的程序员感到困惑?

我想知道的是,如果有人有一个合理的例子,那就是必须使用null而不是用来表示undefined.

因此,普遍的共识似乎undefined是"没有这样的财产",而null意味着"财产确实存在,但没有价值".

我可以忍受,如果JavaScript实现实际上会强制执行此行为 - 但它undefined是一个完全有效的原始值,因此可以很容易地将其分配给现有属性以破坏此合同.因此,如果要确定属性是否存在,则必须使用in运算符或hasOwnProperty()任何方式.再一次:对于undefined和的单独值的实际用途是null什么?

我实际上undefined在我想要取消设置不再使用但我不想要的属性值时使用delete.我应该用null吗?

javascript null language-features undefined

111
推荐指数
5
解决办法
3万
查看次数

是否存在"if(someof someVar ==='undefined')"的jQuery构造

jQuery是否以更简洁的方式提供了一种方法来进行测试?

更新 我应该离开jQ​​uery.这只是一个JavaScript问题.这对我来说太久了!我正在测试是否有外部定义的模块已加载或未加载.看来我可以用它代替:

if (window.someVar)
Run Code Online (Sandbox Code Playgroud)

如果这是一个不好的做法,请纠正我.在我的例子中,如果定义了someVar,它将是一个对象.它不会被定义为假.

javascript jquery

2
推荐指数
1
解决办法
611
查看次数

标签 统计

javascript ×3

jquery ×2

undefined ×2

language-features ×1

null ×1