gpt4 book ai didi

JavaScript 隐式强制转换

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:53:44 24 4
gpt4 key购买 nike

我正在阅读有关隐式和显式强制转换的 JavaScript 教程。

隐式强制转换的背景是什么?

var a = "42";

var b = a * 1; //this is implicitly coerced to 42 -- the number

隐式强制转换是否总是强制转换为数字?如果我们想按照下面的 Python 示例做某事怎么办。

我感到很困惑,因为其他语言(例如 Python)会给您如下所示的结果。

a = "3";

b = 9;

print a * b; //This would print 333333333 -- the string

最佳答案

为了方便您就隐式强制转换得出一些结论,我将把它留在这里:

true + false             // 1
12 / "6" // 2
"number" + 15 + 3 // 'number153'
15 + 3 + "number" // '18number'
[1] > null // true
"foo" + + "bar" // 'fooNaN'
'true' == true // false
false == 'false' // false
null == '' // false
!!"false" == !!"true" // true
['x'] == 'x' // true
[] + null + 1 // 'null1'
[1,2,3] == [1,2,3] // false
{}+[]+{}+[1] // '0[object Object]1'
!+[]+[]+![] // 'truefalse'
new Date(0) - 0 // 0
new Date(0) + 0 // 'Thu Jan 01 1970 02:00:00(EET)0'

但长话短说,规则是这样的,除非您进行明确的强制转换,否则 Javascript 会根据操作 为您做一个转换(因此隐式) >涉及的操作数类型

您可以查看 JavaScript Coercion Rules表以获得完整的预期。

一件事note :

JavaScript coercions always result in oneof the scalar primitive values, like string, number,or boolean. There is no coercion that results in a complex value likeobject or function.

关于JavaScript 隐式强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52639014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com