牛客網刷題(一)型別轉換
目錄
一:布林值轉換:
([])?ture:false; 給出如上程式碼,判斷輸出‘
有一下特例轉換為false,其它均轉化為true; 1)string:''轉化為false 2)number:0轉化為false 3)物件: 為null時,轉化為false 4)undefined:轉化為false
二:==運算子
遵循下面幾條準則:
1、==運算子表數值比較,青睞於number型別 '1' == 2 //false,首先轉'1'隱式轉換為1,然後再比較
2、等式左右兩端有值為布林值型別,先轉換為number型別
3、等式左右兩端存在物件型別時,此時需要將物件轉換為
number型別
4、 null == undefined // true
關於轉換的函式:
1)toString()方法:呼叫此方法會返回反應此物件的字串。此方法繼承自Object物件,Function、Date、Array、正則均有重寫這個方法。
- 陣列類(Array class)的的
toString()
方法將每個陣列元素轉換為一個字串,並在元素之間新增逗號後合併成結果字串;- 函式類(Function class)的
toString()
方法返回這個函式的實現定義的表示方式。實際上,這裡的實現方式是通常是將使用者定義的函式轉換為Javascript原始碼字串
;- 日期類(Date class)定義的
toString()
方法返回了一個可讀的(可被JavaScript解析的)的日期和時間字串;- RegExp類(RegExp class)定義的
toString()
方法將RegExp
物件轉換為表示正則表示式直接量的字串:
2)valueOf()方法:呼叫此方法會返回此物件的原始值,多數情況下會返回此物件本身。
物件轉換為數值型別的過程:
1)首先呼叫valueOf()方法,返回物件的原始值。對於大多數物件來說,這個函式返回的是物件本身。 2)然後對於返回的物件本身,呼叫toSting()方法。此方法將物件轉換為字串
3)上述均不能完成,JavaScript丟擲一個型別錯誤的異常。
例:var person = {name:'lei',age:'24'} person.valueOf() //{name: "lei", age: "24"} person.valueOf().toString() //"[object Object]" typeof person.valueOf().toString() //"string"
然後按照上述規則1,將string轉換為number型別,之後再比較。
補充物件轉換為string型別的過程:
1)如果物件具有
toString()
方法,則呼叫這個方法。如果它返回一個原始值,JavaScript將這個值轉換為字串(如果本身不是字串的話),並返回這個字串的結果。需要注意的是,原始值到字串的轉換2)如果物件沒有
toString()
方法,或者這個方法並不返回一個原始值,那麼JavaScript會呼叫valueOf()
方法。如果存在這個方法,則JavaScript呼叫它。如果返回值是原始值,JavaScript將這個值轉換為字串(如果本身不是字串的話),並返回這個字串結果。3)上述均不能完成,因此這時它將丟擲一個型別錯誤異常。