只適用與基本型別
1 console.
log(
typeof
"langshen");
// string
2 console.
log(
typeof
666)
;// number
3 console.
log(
typeof
true);
// boolean
4 console.
log(
typeof
false);
// boolean
5 console.
log(
typeof
function()
);// function
6 console.
log(
typeof undefined)
;// undefined
7 console.
log(
typeof
null);
// object
8 console.
log(
typeof
);// object
9 console.
log(
typeof);
// object
10. console.
log(type nan
)//number
使用場景
可以用來檢測函式是否傳值
1
function
fn(a, b)
5 console.
log(a, b)
;//1 06}
7fn(1
);
instanceof 可以正確的判斷物件的型別
因為內部機制是通過判斷物件的原型鏈中是不是能找到型別的 prototype。
instanceof是乙個操作符,返回值是乙個布林值
instanceof是檢測引用資料型別,而不能檢測基本資料型別
console.
log(
"langshen"
instanceof
string);
//false
console.
log(
666instanceof
number);
//false
console.
log(
true
instanceof
boolean);
//false
console.
log(
instanceof
array);
//true
console.
log(
instanceof
object);
//true
console.
log(
function()
instanceof
function);
//true
console.
log(
instanceof
object);
//true
只由new出來的才返回true
1
newstring
("langshen"
)instanceof
string
//true
2new
number
(666
)instanceof
number
//true
3new
boolean
(true
)instanceof
boolean
//true
constructor這個屬性存在於建構函式的原型上,指向建構函式,
物件可以通過proto在其所屬類的原型上找到這個屬性
console.
log(
("1"
).constructor === string)
;//true
console.
log((1
).constructor === number)
;//true
console.
log(
(true
).constructor === boolean)
;//true
console.
log(([
]).constructor === array)
;//true
console.
log(
(function()
).constructor === function)
;//true
console.
log(()
.constructor === object)
;//true
這裡有乙個坑,如果我建立乙個物件,
更改它的原型,constructor就會變得不可靠了
看著好像很完美,但是
所有物件都會從它的原型上繼承乙個 constructor 屬性
functionfn(
);fn.prototype=
newarray()
;var f=
newfn()
;console.
log(f instanceoffn)
true
console.
log(f instanceof
object
)true
console.
log(f instanceof
array
)true
console.
log(f.constructor===fn)
;//false
console.
log(f.constructor===array)
;// true
console.
log(object.prototype.tostring.
call(1
));//[object number]
console.
log(object.prototype.tostring.
call(''
));//[object string]
console.
log(object.prototype.tostring.
call
(true))
;//[object boolean]
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 array]
console.
log(object.prototype.tostring.
call()
);// [object object]
console.
log(object.prototype.tostring.
call
(/^$/))
;//[object regexp]
console.
log(object.prototype.tostring.
call((
function()
)));
//[object function]
js 型別檢測
1 檢測字串 數值 布林值 undefined function 使用typeof 在safari和chrome中檢測正則也會返回 function 2 檢測null 應用 3 檢測其它物件 方法一 利用instanceof constructor 再某些ie版本中存在跨iframe問題,每個ifr...
JS型別檢測
主要有兩種型別檢測 typeof 以及 instanceof 一 typeof 判斷型別 返回乙個字串 typeof 數字 number typeof 布林值 boolean typeof 字串 object typeof undefined undefined typeof null object...
JS 型別檢測
型別檢測分為五種 1.typeof 2.物件 obj instanceof object 函式物件 函式構造器 左邊的運算元的物件的原型鏈上是否有右操作函式構造器的prototype屬性 例子 1,2 instanceof array true new object instanceof array...