|
10
|
| Real Red. · 技术社区 · 17 年前 |
|
1
32
==的行为有点冗长,但在 ecma-262 spec :
步骤16适用于前一个示例:
步骤18,然后步骤16,适用于后者:
|
|
|
2
12
这样做:
使javascript将前5个转换为字符串。试试这个:
这个
这实际上是这个的复制品
|
|
|
3
7
因为javascript是松散类型的,所以它将根据操作和操作中其他变量的类型自动强制转换变量。
你可能想看的是
身份
核对(
另请参见此问题: How do the equality and identity comparison operators differ? PHP的实现与JavaScript非常相似。 |
|
|
4
4
javascript有两组相等运算符:
如果两个操作数的类型相同,标准的相等运算符将进行正确的比较,但如果它们的类型不同,则可能会得到一些意外的结果,例如:
为此,我总是建议使用严格的相等运算符(==,!=)。 |
|
|
5
1
javascript不会将“false”转换为布尔值false,只会将其转换为字符串“false”。 您可以将字符串值松散地强制转换为等效的整数,因此第一个示例可以工作。 |
|
|
6
1
Javascript是一种松散类型的语言,因此只要解释器认为需要,就可以在运行时进行类型转换。如果将一个整数与一个字符串进行比较,会发现它们应该是相同的类型,因此,例如,“34”==34为真,因为整数可能会在比较之前被类型化为一个字符串。 字符串“false”不是被类型化为bool的,而是被类型化为字符串的bool false,该字符串意外地具有值“0”,即包含数字0的字符串,给出“0”==“false”,这显然是错误的。 如果要比较不带自动排版、有效比较类型和值的值,请使用三等号: 5===“5”假 “string”==“字符串”真 |
|
|
7
1
因为JavaScript的类型都很松散,而且非常不一致。并不是所有的设计特性都经过深思熟虑;与其他编程语言相比,它的创建、实现和部署速度都非常快,这是为了让Netscape 2.0迅速推出。直到不久之后,它才安定下来,失去了一些更令人震惊的错误,并成为半标准化。 寻找一些哲学上的理论基础,比如隐式类型的铸造规则,可能是一个徒劳的练习。Javascript唯一真正坚持的原则是 DWIM 非常消极。 |
|
|
8
0
javascript将假值定义为0,布尔值为false,未定义。“0”之外的任何字符串都将为true,即使该字符串为“false”。 真的有点烦人。 |
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 1 年前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 1 年前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 1 年前 |