上圖總結:轉換和相等性1.以數字表示的字串可以直接轉換為數字,允許在開始和結尾處帶空格(開頭和結尾處的非空格不會被當成數字直接量的一部分,導致結果為nan)
2.原始值通過呼叫string([val])、number([val])、boolean([val])建構函式轉換為各自的包裝物件
3.null和undefined屬於例外,當你期望他們是物件時,會造成乙個型別錯誤(typeerror)
因為js較為靈活,所以 『==』 相等運算子也隨相等的含義靈活多變
如:
null == undefined;
"0" == 0; // 在比較之前,「0」會轉變為0
0 == false // false會轉變為0,再比較
「0」 == false // false轉變為0,「0」轉變為0
注意:乙個值轉換為另乙個值時,並不會意味著這兩個值相等,比如indefined會轉換為false,false並不等於undefined.顯式型別轉換
js中會自動的做某些轉換,但有時卻需要自己手動。常見的方法有:
number("3") // => 3
string(false) // => "false"
boolean() // => true
object(3) // => new number(3)
另:某些運算子也會做隱示型別轉換js中提供了一些方法,可以使得number to string/string to number更簡單』x + 「」『 可以等價於string(x);
『+ x』 可以等價於number(x),也可以寫成 x - 0;
『!!x』 可以等價於boolean(x),注意兩個嘆號;
物件轉換為值
物件到布林值的轉換很簡單:所有物件都轉換為true,包裝物件也是這樣:new boolean(false) => true;物件到字串和數字是通過呼叫待轉換物件的乙個方法來完成的。
*以下方法只適用於本地物件,而宿主物件(如web瀏覽器定義的物件)根據各自的演算法來轉換
var now = new date() // => 建立乙個日期物件
typeof(now + 1) // => "string"("+"將日期轉換為字串)
typeof(now - 1) // => "number"("-"使用物件到數字的轉換)
now == now.tostring() // => true(隱式的和限式的字串轉換)
now > (now - 1) // => true(">"將日期轉換為數字)
JS資料型別轉換
js var blue alert scolor.length outputs 4 js varfalse alert bfound.tostring outputs false js varvar outputs 10 js var outputs a js var var var var ret...
JS 資料型別轉換
js 資料型別轉換 方法主要有三種 轉換函式 強制型別轉換 利用js變數弱型別轉換。1.轉換函式 js提供了parseint 和parsefloat 兩個轉換函式。前者把值轉換成整數,後者把值轉換成浮點數。只有對string型別呼叫這些方法,這兩個函式才能正確執行 對其他型別返回的都是nan not...
JS 資料型別轉換
js 資料型別轉換 方法主要有三種 轉換函式 強制型別轉換 利用js變數弱型別轉換。1.轉換函式 js提供了parseint 和parsefloat 兩個轉換函式。前者把值轉換成整數,後者把值轉換成浮點數。只有對string型別呼叫這些方法,這兩個函式才能正確執行 對其他型別返回的都是nan not...