1它碎、valueOf()函荣、toString()显押、toNumber()以及toPrimitive()

valueOf:引用類型中除了Date,valueOf()會返回字符串外傻挂,其他的都是返回this乘碑。

對于常見內(nèi)置對象:Date, Array, Math, Number, Boolean, String, RegExp, Function的valueOf()

  • 對于Number、Boolean金拒、String兽肤,會變成相應(yīng)的原始值

    var num = new Number('123');
    num.valueOf(); // 123
    var str = new String('12df');
    str.valueOf(); // '12df'
    var bool = new Boolean('fd');
    bool.valueOf(); // true
    
  • Date會轉(zhuǎn)換為日期的毫秒的形式的數(shù)值

    var a = new Date();
    a.valueOf(); // 1532234132475
    
  • 其他的都是this,即對象本身

    var a = new Array();
    a.valueOf() === a; 
    // true
    var b = new Object({});
    b.valueOf() === b;
     // true
    

toString:普通對象和Math對象的toString是返回他本身的類型即[object Object/Math]绪抛,其他都有自己的toString资铡,可返回相對有意義的返回值。

  • Number幢码、Boolean笤休、String、Array症副、Date宛官、RegExp、Function這幾種構(gòu)造函數(shù)生成的對象瓦糕,通過toString轉(zhuǎn)換后會變成相應(yīng)的字符串的形式底洗,因?yàn)檫@些構(gòu)造函數(shù)上封裝了自己的toString方法。

    Number.prototype.hasOwnProperty('toString'); // true
    Boolean.prototype.hasOwnProperty('toString'); // true
    String.prototype.hasOwnProperty('toString'); // true
    Array.prototype.hasOwnProperty('toString'); // true
    Date.prototype.hasOwnProperty('toString'); // true
    RegExp.prototype.hasOwnProperty('toString'); // true
    Function.prototype.hasOwnProperty('toString'); // true
    var num = new Number('123sd');
    num.toString(); // 'NaN'
    var str = new String('12df');
    str.toString(); // '12df'
    var bool = new Boolean('fd');
    bool.toString(); // 'true'
    var arr = new Array(1,2);
    arr.toString(); // '1,2'
    var d = new Date();
    d.toString(); // "Sun Jul 22 2018 12:38:42 GMT+0800 (中國標(biāo)準(zhǔn)時間)"
    var func = function () {}
    func.toString(); // "function () {}"
    
  • 其他(例如Object咕娄,Math)都是返回該對象的類型亥揖。

    var obj = new Object({});
    obj.toString(); // "[object Object]"
    Math.toString(); // "[object Math]"
    

toString

類型 轉(zhuǎn)換后結(jié)果
undefined "undefined"
null "null"
boolean "true" / "false"
number 數(shù)值類型的字符串
Array (本質(zhì)上也是object) [] 全部去掉,剩下的元素用','隔開的字符串
object 根據(jù) valueOf / toString

只有普通Object和Math對象沒有自己的toString圣勒,所以返回的是"[object Object]"這樣子的费变。

其他的話,返回的是有意義的結(jié)果圣贸。

toNumber

類型 轉(zhuǎn)換后結(jié)果
undefined NaN
null 0
boolean 0 / 1
number 本身
String 空串和空格=0挚歧,數(shù)值型字符串=數(shù)值,普通字符串=NaN
object 無(貌似)
  • 不同類型進(jìn)行+ - * / ==會先轉(zhuǎn)化為數(shù)字類型吁峻,在運(yùn)算滑负。
  • +不僅是算數(shù)運(yùn)算符,也可以是字符串拼接用含,當(dāng)字符串不是純數(shù)字時會進(jìn)行拼接矮慕。
  • 比較特殊的是:null == undefined。要比較相等性之前啄骇,不能將 null 和 undefined 轉(zhuǎn)換成其他任何值痴鳄,并且規(guī)定null 和 undefined 是相等的。null 和 undefined都代表著無效的值缸夹。
  • ==在比較的時候先轉(zhuǎn)換數(shù)據(jù)類型痪寻,若等式兩邊數(shù)據(jù)類型不相同螺句,將會往數(shù)值類型方向轉(zhuǎn)換后再進(jìn)行比較
  • ==兩邊都是對象時,比較的是他們的地址

當(dāng)我們進(jìn)行強(qiáng)轉(zhuǎn)時橡类,發(fā)生了什么壹蔓?

在JavaScript中,如果想要將對象轉(zhuǎn)換成基本類型時猫态,也就是所謂的拆箱時佣蓉,會調(diào)用toPrimitive()。

toPrimitive(input,preferedType?) // 輸入值,期望轉(zhuǎn)換的類型
toPrimitive

preferedType為空時亲雪,日期會被認(rèn)為是字符串勇凭,而其他的值會被當(dāng)做Number。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末义辕,一起剝皮案震驚了整個濱河市虾标,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌灌砖,老刑警劉巖璧函,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異基显,居然都是意外死亡蘸吓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門撩幽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來库继,“玉大人,你說我怎么就攤上這事窜醉∠芴眩” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵榨惰,是天一觀的道長拜英。 經(jīng)常有香客問我,道長琅催,這世上最難降的妖魔是什么居凶? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮恢暖,結(jié)果婚禮上排监,老公的妹妹穿的比我還像新娘。我一直安慰自己杰捂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布棋蚌。 她就那樣靜靜地躺著嫁佳,像睡著了一般挨队。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蒿往,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天盛垦,我揣著相機(jī)與錄音,去河邊找鬼瓤漏。 笑死腾夯,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蔬充。 我是一名探鬼主播蝶俱,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼饥漫!你這毒婦竟也來了榨呆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤庸队,失蹤者是張志新(化名)和其女友劉穎积蜻,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體彻消,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡竿拆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宾尚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片如输。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖央勒,靈堂內(nèi)的尸體忽然破棺而出不见,到底是詐尸還是另有隱情,我是刑警寧澤崔步,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布稳吮,位于F島的核電站,受9級特大地震影響井濒,放射性物質(zhì)發(fā)生泄漏灶似。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一瑞你、第九天 我趴在偏房一處隱蔽的房頂上張望酪惭。 院中可真熱鬧,春花似錦者甲、人聲如沸春感。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲫懒。三九已至嫩实,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窥岩,已是汗流浹背甲献。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留颂翼,地道東北人晃洒。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像朦乏,于是被迫代替她去往敵國和親球及。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容