深度理解資料型別檢測,讓自己都封裝乙個資料型別檢測

2021-10-09 01:43:01 字數 2775 閱讀 6471

console.

log(

typeof a)

;//'undefined'

console.

log(

typeof

(true))

;//'boolean'

console.

log(

typeof

'123');

//'string'

console.

log(

typeof

123)

;//'number'

console.

log(

typeof

nan)

;//'number'

console.

log(

typeof

null);

//'object'

var obj =

newstring()

;console.

log(

typeof

(obj));

//'object'

varfn

=function()

;console.

log(

typeof

(fn));

//'function'

console.

log(

typeof

(classc)

);//'function'

let arr =

;console.

log(arr instanceof

array);

//=>true

console.

log(arr instanceof

regexp);

//=>false

console.

log(arr instanceof

object);

//=>true

let arr =

;console.

log(arr.constructor === array)

;// true

console.

log(arr.constructor === regexp)

;// false

console.

log(arr.constructor === object)

;// false

number.prototype.constructor =

'aa'

;let n =1;

console.

log(n.constructor === number)

;// false

[object number]			[object string]			[object boolean]		[object null]

[object undefined] [object symbol] [object object] [object array]

[object regexp] [object date] [object function]

let obj =

;obj.

tostring()

;=>

"[object object]"

//-> tostring方法執行,this是obj,所以檢測是obj它的所屬類資訊

// 推測:是不是只要把object.prototype.tostring執行,讓它裡面的this變為要檢測的值,那就能返回當前值所屬類的資訊

(

function()

;var tostring = typeobject.tostring;

//=>object.prototype.tostring;

// 設定資料型別的對映表

var typearr =

["boolean"

,"number"

,"string"

,"function"

,"array"

,"date"

,"regexp"

,"object"

,"error"

,"symbol"];

typearr.

foreach

(name =>]`]

= name.

tolowercase()

;//新增鍵值對

//鍵:key = typeobject[`[object $]`]

//值:value = name.tolowercase();轉換為小寫字母儲存})

;//自定義建構函式

function

iftype

(obj)

// 基本資料型別都採用typeof檢測,其他都用typeobject去配對

return

typeof obj ===

"object"

||typeof obj ===

"function"

? typeobject[tostring.

call

(obj)]||

"object"

:typeof obj;

} window.iftype = iftype;

//window瀏覽器物件})

();

go var 乙個整數 Go 語言資料型別

字串去除空格和換行符package main import fmt strings func main str 這裡是 www n.runoob n.com fmt.println 原字串 fmt.println str 去除空格 str strings.replace str,1 去除換行符 st...

計算機如何儲存乙個資料型別的物件?

先記錄幾個小知識點 在大多數的計算機,最小位址定址單位是位元組,而不是位。機器級別程式把記憶體看作是乙個很大位元組陣列,稱為虛擬記憶體,所以虛擬記憶體位址的集合就是虛擬記憶體空間。對於乙個字長w的機器,它虛擬記憶體可定址範圍是0 2 w 1,乙個32位字長的虛擬位址空間是4gb。比如乙個int 物件...

js中非常重要的乙個資料型別 陣列

陣列 1.什麼是陣列 資料的組合,一組資料,當需要操作多個類似資料時,可以給 資料打包,陣列。陣列其實也是物件,只是儲存資料的形式不一樣 陣列表示資料的有序集合 1.如何得到陣列 字面量建立 var arr console.log arr console.log typeof arr 型別objec...