相关疑难解决方法(0)

为什么null是一个对象,null和undefined之间有什么区别?

为什么被null认为是objectJavaScript?

正在检查

if ( object == null )
      Do something
Run Code Online (Sandbox Code Playgroud)

同样的

if ( !object )
      Do something
Run Code Online (Sandbox Code Playgroud)

并且:

null和之间有什么区别undefined

javascript null typeof object undefined

855
推荐指数
12
解决办法
54万
查看次数

对于CodeMash 2012的"Wat"演讲中提到的这些奇怪的JavaScript行为有什么解释?

CodeMash 2012"Wat"谈话基本上指出了Ruby和JavaScript的一些奇怪的怪癖.

我在http://jsfiddle.net/fe479/9/上做了一个JSFiddle的结果.

下面列出了JavaScript特有的行为(我不知道Ruby).

我在JSFiddle中发现我的一些结果与视频中的结果不一致,我不知道为什么.但是,我很想知道JavaScript在每种情况下如何处理幕后工作.

Empty Array + Empty Array
[] + []
result:
<Empty String>
Run Code Online (Sandbox Code Playgroud)

+在JavaScript中使用数组时,我对运算符非常好奇.这与视频的结果相匹配.

Empty Array + Object
[] + {}
result:
[Object]
Run Code Online (Sandbox Code Playgroud)

这与视频的结果相匹配.这里发生了什么?为什么这是一个对象.什么是+运营商吗?

Object + Empty Array
{} + []
result
[Object]
Run Code Online (Sandbox Code Playgroud)

这与视频不符.该视频表明结果是0,而我得到[对象].

Object + Object
{} + {}
result:
[Object][Object]
Run Code Online (Sandbox Code Playgroud)

这与视频不匹配,输出变量如何导致两个对象?也许我的JSFiddle错了.

Array(16).join("wat" - 1)
result:
NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Run Code Online (Sandbox Code Playgroud)

做wat + 1导致wat1wat1wat1wat1......

我怀疑这只是简单的行为,试图从字符串中减去一个数字导致NaN.

javascript

743
推荐指数
4
解决办法
7万
查看次数

为什么typeof null"对象"?

我正在阅读'Web开发人员的专业Javascript'第4章,它告诉我五种类型的原语是:undefined,null,boolean,number和string.

如果null是原始的,为什么会typeof(null)回归"object"

null是不是意味着通过引用传递(我假设所有对象都通过引用传递),因此使它不是原始的?

javascript primitive

220
推荐指数
6
解决办法
8万
查看次数

为什么{} + {}仅在客户端是NaN?为什么不在Node.js?

虽然[] + []是一个空字符串,[] + {}"[object Object]",{} + []0.为什么是{} + {}NaN?

> {} + {}
  NaN
Run Code Online (Sandbox Code Playgroud)

我的问题是不是为什么({} + {}).toString()"[object Object][object Object]"同时NaN.toString()"NaN",这部分在这里有一个答案已经.

我的问题是为什么这只发生在客户端?在服务器端(Node.js){} + {}"[object Object][object Object]".

> {} + {}
'[object Object][object Object]'
Run Code Online (Sandbox Code Playgroud)

总结:

在客户端:

 [] + []              // Returns ""
 [] + {}              // Returns "[object Object]"
 {} + []              // …
Run Code Online (Sandbox Code Playgroud)

javascript eval node.js web-developer-toolbar google-chrome-devtools

135
推荐指数
1
解决办法
4700
查看次数

为什么JavaScript中的""== [null]为真?

我知道JavaScript在类型之间进行比较时会有很多疯狂的结果,但我并不完全理解为什么.今天碰到了这个.

为什么

"" == [null]
Run Code Online (Sandbox Code Playgroud)

true用JavaScript 评估?

更多Javascript平等娱乐,感谢@Qantas:

javascript

54
推荐指数
3
解决办法
4620
查看次数

在JavaScript中使用标签是不好的做法?

我刚刚发现在JavaScript中使用标签,例如:

for (var i in team) {
    if(i === "something") {
        break doThis: //Goto the label
    } else {
        doThat();
    }
}

doThis: //Label
doIt();
Run Code Online (Sandbox Code Playgroud)

直到现在我还没有听说过这个,我在网上找不到太多关于它的信息,我开始认为这是有原因的.

在我看来,这类似于GOTO其他语言的陈述,并将被视为不良做法.假设这个我是对的吗?

javascript label loops break nested-loops

42
推荐指数
4
解决办法
2万
查看次数

在JavaScript中是null对象吗?

可能重复:
javascript中的空对象

嗨,我在JavaScript中读过关于null的这个帖子,但我对null现在的身份感到非常困惑.

众所周知,由于语言设计错误typeof(null)评估,而ECMA声明null为.objectThe Null Type

   8.2 The Null Type
   The Null type has exactly one value, called null.
Run Code Online (Sandbox Code Playgroud)

那么为什么人们一直说这null是一个对象呢?

有人说null是一个单例对象.那是每个人如何在JavaScript中看到null吗?

javascript null

12
推荐指数
2
解决办法
7118
查看次数

11
推荐指数
5
解决办法
7万
查看次数

什么是奇怪的JavaScript表达式的解释?

在JavaScript中,以下代码行给出答案为1

+ ! {} [true]
Run Code Online (Sandbox Code Playgroud)

我怎么也听不懂?

任何大师的解释都表示赞赏.

javascript

5
推荐指数
1
解决办法
106
查看次数