一)js資料型別種類
基本資料型別:string、number、null、boolean、undefined共五大類,資料大小確定,儲存在計算機棧記憶體中。
二)js資料型別檢測方式
主要有typeof、instanceof、constructor、object.prototype.tostring()四種。
typeof檢測8大資料型別,null和array都被檢測成了object,其它都正常。
console.
log(
typeof1)
//number
console.
log(
typeof
'a')
//string
console.
log(
typeof
true
)//boolean
console.
log(
typeof undefined)
//undefined
console.
log(
typeof
null
)//object
console.
log(
typeof
)//object
console.
log(
typeof
function()
)//function
console.
log(
typeof
)//object
instanceof(例項),只能檢測引用型別(陣列,物件,函式),檢測引用型別a是否是b的例項,通過原型鏈檢測引用例項的建構函式。
console.
log(
1instanceof
number
)//false
console.
log(
'a'instanceof
string
)//false
console.
log(
true
instanceof
boolean
)//false
// console.log( undefined instanceof undefined) // 異常
// console.log( null instanceof null) // 異常
console.
log(
instanceof
array
)//true
console.
log(
function()
instanceof
function
)//true
console.
log(
instanceof
object
)//true
// 這就是instanceof實現原理,通過原型鏈檢測引用例項的建構函式
// a引用例項,b建構函式
function
instance
(a,b)
}
constructor(建構函式)檢測資料的建構函式,物件的constructor指向建立該物件的函式,也就是建構函式
這裡首先講下constructor的用法:
console.
log(
''.constructor === string)
// true
console.
log((1
).constructor === number)
// true
// console.log((null).constructor === null) // 異常
// console.log(undefinde.constructor === undefined) // 異常
console.
log(
.constructor === array)
// true
console.
log(
.constructor === object)
// true
console.
log(
(function()
).constructor === function)
// true
function
cat()}
const cat =
newcat()
// 物件的constructor指向建立該物件的函式,也就是建構函式
console.
log(cat.constructor === cat)
// true
console.
log(cat.__proto__ === cat.prototype)
console.
log(cat.__proto__.constructor === cat)
// true
// 函式的原型物件的constructor指向函式本身
console.
log(cat.prototype.constructor === cat)
// true
比喻我們在引用乙個建構函式的例項時,我們想對其建構函式進行改造,這時constructor就有用了,我們可以通過例項的constructor找到其建構函式,然後在建構函式的原型物件上新增一些新的屬性和方法。
function
cat(
)const cat =
newcat()
// 在建構函式cat上新增age屬性,並賦值22
cat.constructor.prototype.age =
22 cat.constructor.prototype.
say=
function()
const cat1 =
newcat()
console.
log(cat1.age)
// 22
cat1.
say(
)// my name is coco, and age is 22
// constructor.length構造函式引數個數
console.
log(cat1.constructor.length)
// 0
object.prototype.tostring()
tostring()是object原型prototype的乙個方法,預設返回物件的[object,xx]
console.
log(object.prototype.
tostring()
)// [object object]
console.
log(object.prototype.tostring.
call
(null))
// [object null]
console.
log(object.prototype.tostring.
call
(undefined)
)// [object undefined]
console.
log(object.prototype.tostring.
call(''
))// [object object]
console.
log(object.prototype.tostring.
call(1
))// [object number]
console.
log(object.prototype.tostring.
call
(true))
// [object boolean]
console.
log(object.prototype.
tostring()
)// [object object]
console.
log(object.prototype.tostring.
call([
]))// [object array]
console.
log(object.prototype.tostring.
call
(function()
))// [object object]
js判斷資料型別
1 typeof 形如 var x xx typeof x string 返回型別有 undefined string number boolean function object 缺點 對於object型別不能細分是什麼型別 優點 對空null的判斷 undefined 的應用 2 instanc...
js判斷資料型別
了解js的都知道,有個typeof 用來判斷各種資料型別,有兩種寫法 typeof typeof 如下例項 typeof 2 輸出 number typeof null 輸出 object typeof 輸出 object typeof 輸出 object typeof function 輸出 fu...
js判斷資料型別
1 判斷是否為陣列型別 2 判斷是否為字串型別 3 判斷是否為數值型別 isnan 變數 如果為true就是數字型別 注意這個函式一般針對數字型別來判斷是否值為nan,若變數為非數字型別,則先轉化為數字型別再做判斷,用此函式時,別忘考慮空串和空格 這倆轉化為數字是0 4 判斷是否為日期型別 5 判斷...