对象转换成数字,先调用 valueOf 方法,如果没有则调用 toString 方法,这里 Date 和 函数的转换看不懂是怎么转换的。var a = { valueOf() => 44}1 * a // 44var b = { toString: () => '22'}1 * b // 221 * Date // NaN1 * (() => 'fun') // NaN感谢 zhenguoli 回答ToInt32 第二步操作转换的Let number be ? ToNumber(argument).If number is NaN, +0, ‑0, +∞, or ‑∞, return +0.顺便发现第五步If int32bit ≥ 2^31 , return int32bit ‑ 2^32; otherwise return int32bit.也就是4294967297 | 0 // => 1这就感觉有 TypeScript 会继承这些隐藏的坑啊,毕竟 Kotlin 的代码是这样转换的 // Kotlin val l = 8589934592 println(or(ll)) // to JavaScript var l = new Kotlin.Long(0, 2); println(or(new Kotlin.Long(0, 2)));
添加回答
举报
0/150
提交
取消