對象轉(zhuǎn)換成數(shù)字,先調(diào)用 valueOf 方法,如果沒有則調(diào)用 toString 方法,這里 Date 和 函數(shù)的轉(zhuǎn)換看不懂是怎么轉(zhuǎn)換的。var a = { valueOf() => 44}1 * a // 44var b = { toString: () => '22'}1 * b // 221 * Date // NaN1 * (() => 'fun') // NaN感謝 zhenguoli 回答ToInt32 第二步操作轉(zhuǎn)換的Let number be ? ToNumber(argument).If number is NaN, +0, ?0, +∞, or ?∞, return +0.順便發(fā)現(xiàn)第五步If int32bit ≥ 2^31 , return int32bit ? 2^32; otherwise return int32bit.也就是4294967297 | 0 // => 1這就感覺有 TypeScript 會繼承這些隱藏的坑啊,畢竟 Kotlin 的代碼是這樣轉(zhuǎn)換的 // Kotlin val l = 8589934592 println(or(ll)) // to JavaScript var l = new Kotlin.Long(0, 2); println(or(new Kotlin.Long(0, 2)));
按位或是怎么保證結(jié)果總是數(shù)字的,這個(gè)轉(zhuǎn)換看不懂
30秒到達(dá)戰(zhàn)場
2019-02-09 18:35:19