免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
js隱式轉(zhuǎn)換

首先,js的typeof返回的是字符串
一共有 “number”, “string”, “boolean”, “object”, “undefined” “function”
其實function也是object,為什么這么返回我也不知道

在進行( - * / % )運算時
基本類型的轉(zhuǎn)換形式
先說,這個與其他的不太一樣。無論什么類型,遇到string都會轉(zhuǎn)換成字符串。比如

true   '1' => 'true1'undefined   '1' => 'undefined1'null   '1' => 'null1'

其余時候是轉(zhuǎn)換成數(shù)字。

null, false => 0undefined => NaNtrue => 1

其他運算符,那就沒辦法做字符串拼接操作了,統(tǒng)一轉(zhuǎn)化成"number"類型(即使是string類型也不例外)

"a1" => NaN"1" => 1

大概很好理解吧,如果是純數(shù)字就能轉(zhuǎn),不是純數(shù)字,就會轉(zhuǎn)成NaN

對象
分類討論
如果是 ,會調(diào)用toString()方法,


如果是其他的,則會調(diào)用valueOf,基本上可以說,如果你沒有自己去覆蓋valueOf方法,那答案就必定是NaN。

JavaScript調(diào)用該valueOf方法將對象轉(zhuǎn)換為原始值。您很少需要自己調(diào)用該valueOf方法;
當(dāng)遇到期望原始值的對象時,JavaScript會自動調(diào)用它。

默認(rèn)情況下,該valueOf方法由后代的每個對象繼承Object。每個內(nèi)置核心對象都會覆蓋此方法以返回適當(dāng)?shù)闹?。如果對象沒有原始值,則valueOf返回對象本身。

這是mdn關(guān)于valueOf的描述
我的理解是,首先,js一切皆為對象。包括string,number,boolean。
上面這幾種,他們是有原始值的,所以valueOf()會直接返回本身。


Object類型,一般是不會自己設(shè)valueOf()的,所以會返回對象本身

如果想要對象參與運算,最好先給他定義valueOf和toString方法,否則肯定是要出現(xiàn)你不想要的答案
轉(zhuǎn)化成Number類型會先調(diào)用valueOf(), 轉(zhuǎn)化成String類型會先調(diào)用toString(),

function MyNumberType(n) {    this.number = n;}MyNumberType.prototype.valueOf = function() {    return this.number;};var myObj = new MyNumberType(4);myObj   3; // 7


這個可以解釋

if判定條件里,應(yīng)該是要先轉(zhuǎn)化成boolean類型,
如null, ‘’, undefined, NaN, 0 => false

來源:http://www.icode9.com/content-4-208651.html
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
javascript 一 03 數(shù)據(jù)類型的轉(zhuǎn)換
js數(shù)據(jù)類型
java對象轉(zhuǎn)為string的幾種常用方法剖析
java中toString()方法與System.out.println()
java對象轉(zhuǎn)換String類型的三種方法
【JavaScript 教程】運算符—比較運算符
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服