相关疑难解决方法(0)

对于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万
查看次数

使用Number对象保存属性并递增数字,此代码中发生了什么?

最近的一条推文包含了这段JavaScript代码.

有人可以一步一步解释其中发生的事情吗?

> function dis() { return this }
undefined
> five = dis.call(5)
Number {[[PrimitiveValue]]: 5}
> five.wtf = 'potato'
"potato"
> five.wtf
"potato"
> five * 5
25
> five.wtf
"potato"
> five++
5
> five.wtf
undefined
> five.wtf = 'potato?'
"potato?"
> five.wtf
undefined
> five
6
Run Code Online (Sandbox Code Playgroud)

特别是,我不清楚:

  • 为什么结果dis.call(5)Number带有某种[[PrimitiveValue]]属性的,但结果five++five * 5看起来只是普通的数字525(不是Numbers)
  • 为什么five.wtf属性在five++增量后消失
  • 为什么five.wtf属性在five++ …

javascript

247
推荐指数
9
解决办法
2万
查看次数

类型安全和值安全之间的区别

我一直在阅读《Head First 面向对象的分析与设计》书,并且正在尝试学习 oop。

\n

在本书的一页中,我读到了以下几行:

\n
\n

我们\xe2\x80\x99已经使应用程序变得不那么脆弱了。它\xe2\x80\x99现在不会那么容易被破坏,因为我们\xe2\x80\x99已经用这些枚举添加了类型安全和值安全。

\n
\n

并且:

\n
\n

因此,您可以\xe2\x80\x99 拼写或错误键入枚举而不会出现编译器错误。它\xe2\x80\x99 是一种不仅获得类型安全,而且获得价值安全的好方法;您可以避免获得任何具有标准范围或合法值集的不良数据。

\n
\n

我读过这个答案,但我很困惑,因为我认为答案是我们可以假设为价值安全的东西。

\n

现在我的问题是类型安全和值安全之间有什么区别?\nEnum 如何为我们带来类型安全值安全?请给我一些有关枚举中类型安全场景和值安全场景的示例。

\n

谢谢。\n抱歉我的英语不好。

\n

java enums types type-safety

4
推荐指数
1
解决办法
86
查看次数

标签 统计

javascript ×2

enums ×1

java ×1

type-safety ×1

types ×1