valueof()
是獲取物件的原始值,其型別總是該物件的型別
tostring()
是把物件轉換成字串,其型別就是字串
在利用==
比較時,如果有乙個是物件,另乙個是字串 數值或布林值,js引擎會先優先呼叫內建物件的valueof
方法,date
比較特殊直接呼叫tostring
方法
'abc'
.valueof()
// "abc"
'abc'
.tostring()
// "abc"
'123'
.valueof()
// "123"
'123'
.tostring()
// "123"
typeof
'123'
.tostring()
// "string"
typeof
'123'
.valueof()
// "string"
var n =
123n.
valueof()
// 123
n.tostring()
// "123"
typeof n.
valueof()
// "number"
typeof n.
tostring()
// "string"
true
.valueof()
// true
true
.tostring()
// "true"
typeof
true
.valueof()
// "boolean"
typeof
true
.tostring()
//"string"
var sm =
symbol
('test'
)sm.
valueof()
// symbol(test)
sm.tostring()
// "symbol(test)"
typeof sm.
valueof()
// "symbol"
typeof sm.
tostring()
// "string"
var arr =[1
,2,'a'
,true
]arr.
valueof()
// [1, 2, "a", true]
arr.
tostring()
// "1,2,a,true"
typeof arr.
valueof()
// "object"
typeof arr.
tostring()
//"string"
arr.
valueof()
instanceof
array
// true
.valueof()
// .
tostring()
// ""
varfn=
function()
fn.valueof()
// ƒ ()
fn.tostring()
// "function()"
typeof fn.
valueof()
// "function"
typeof fn.
tostring()
// "string"
var obj =
obj.
valueof()
// obj.
tostring()
// "[object object]"
typeof obj.
valueof()
// "object"
typeof obj.
tostring()
// "string"
var d =
newdate()
d // tue jul 23 2019 13:42:23 gmt+0800 (中國標準時間)
d.valueof()
// 1563860543000
d.tostring()
// "tue jul 23 2019 13:42:23 gmt+0800 (中國標準時間)"
typeof d.
valueof()
// "number"
typeof d.
tostring()
// "string"
js基本型別
es5共有5種基本型別,分別為number,string,null,undefined,boolean,es6新增了symbol.console.log typeof undefined 輸出為undefined console.log typeof null 輸出為object console.l...
js 基本型別 引用型別
1 基本的資料型別有 undefined,boolean,number,string,null.基本型別的訪問是按值訪問的,就是說你可以操作儲存在變數中的實際的值 基本型別的比較是值的比較。用 比較兩個不同型別的變數時會進行一些型別轉換。但是當兩個值的型別相同的時候,即使是 也相當於是 基本型別的變...
js 引用型別和基本型別
js中的資料型別有以下幾種 基本型別 number boolean string undefined null symbol 引用型別 object array,function,date,正則物件,json物件 基本型別的資料是存放在棧記憶體中的,而引用型別的資料是存放在堆記憶體中的 複製變數值 ...