1. 程式人生 > >牛客網刷題(一)型別轉換

牛客網刷題(一)型別轉換

目錄

一:布林值轉換: 

([])?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)上述均不能完成,因此這時它將丟擲一個型別錯誤異常。