javascriptの中の基本的なデータのタイプとタイプの検査のいくつかの方法
2230 ワード
1.JSには6つの基本的なデータタイプがあり、JSのすべての操作はこの5つの基本的なタイプに基づいています.(1)Object
オブジェクトの種類
(2)number
数の種類
(3)String
文字列の種類
(4)null
(5)undefined
(6)book an
ブールタイプ:trueまたはfalse
I)JSでのデータタイプ変換(厳格でないモードで)
「12」==12//trueは、非厳密なモードで文字列を数字に変換できます.
true==1//trueブール値は等号の両側で0または1に変換しようとします.
「1」==true//true
null==undefined/true
new Object()=new Object()//true
NaN==NaN//false
new
II)JSにおけるデータタイプ変換(非厳格モードで)
上記の中の等号は成立しません.
注:特にベースタイプのstringやnumberであれば、必要に応じて、stringやnumberを対象のobjectタイプに変換することができます.例えば、var x="hello";alert(a.length)//5
データの種類の中の暗黙的な転化は補充します:“32”+32/転化はstringになります. JSにおけるタイプ検出方法 (1)タイプ検出は、typeofで行う
まずいくつかの例を見ます.
typeof 100->number
typeof「hello」string
typeof true->bootlean
typeof Number——>function
typeof new Object()->Object
typeof Object->function
typeof null——–Object
typeof undefined–undefined
まとめ:右側が基本タイプなら、typeofは関数名、number、stringなどの基本的なタイプを試します.関数名なら、functionに戻ります.ここでObject、Number、Steringなどは関数名として見られます.右側がベースのオブジェクトなら、Objectに戻ります.
注:typeof nullを発見しましたが、結果はobjectに戻りました.これは昔のBUGです.今までずっと使っています.
試用範囲:typeofでタイプを判断すれば、基本タイプを判定するか、関数かどうかを判断します.
2.instance of
同様に例を挙げて説明します.
[1,2]instance of Aray——>true
“1,2”instance of Aray——>>false
まとめ:instance ofはプロトタイプチェーンに沿って検索します.左のオブジェクトのプロトタイプチェーンに右のオブジェクトがあれば、trueに戻ります.拡張を判断する対象のタイプ(numberではなく、stringなど)だけに注意してください.
例えば:1 instance of Number->false
左のオブジェクトのプロトタイプチェーンに右の関数のプロトタイプがあるかどうかを検出します.
3.Object.prototype.toString
オブジェクトの原型上のStating方法によって、タイプを判断することもできます.例を挙げます.
Object.prototype.toString.apply([])-[object Object]
Object.prototype.toString.apply(function)->[object Funct]
Object.prototype.toString.apply->[object Funct]
Object.prototype.toString.apply->[object Funct]
Object.prototype.toString.apply(null)——–[object Null]
Object.prototype.toString.apply–[object Udefined]
使用タイプ:オリジナルオブジェクトとベースタイプ
他にも(4)コントラクションがあります.
(5)duck typeなど
オブジェクトの種類
(2)number
数の種類
(3)String
文字列の種類
(4)null
(5)undefined
(6)book an
ブールタイプ:trueまたはfalse
I)JSでのデータタイプ変換(厳格でないモードで)
「12」==12//trueは、非厳密なモードで文字列を数字に変換できます.
true==1//trueブール値は等号の両側で0または1に変換しようとします.
「1」==true//true
null==undefined/true
new Object()=new Object()//true
NaN==NaN//false
new
II)JSにおけるデータタイプ変換(非厳格モードで)
上記の中の等号は成立しません.
注:特にベースタイプのstringやnumberであれば、必要に応じて、stringやnumberを対象のobjectタイプに変換することができます.例えば、var x="hello";alert(a.length)//5
データの種類の中の暗黙的な転化は補充します:“32”+32/転化はstringになります.
"32"-32 // number
まずいくつかの例を見ます.
typeof 100->number
typeof「hello」string
typeof true->bootlean
typeof Number——>function
typeof new Object()->Object
typeof Object->function
typeof null——–Object
typeof undefined–undefined
まとめ:右側が基本タイプなら、typeofは関数名、number、stringなどの基本的なタイプを試します.関数名なら、functionに戻ります.ここでObject、Number、Steringなどは関数名として見られます.右側がベースのオブジェクトなら、Objectに戻ります.
注:typeof nullを発見しましたが、結果はobjectに戻りました.これは昔のBUGです.今までずっと使っています.
試用範囲:typeofでタイプを判断すれば、基本タイプを判定するか、関数かどうかを判断します.
2.instance of
同様に例を挙げて説明します.
[1,2]instance of Aray——>true
“1,2”instance of Aray——>>false
まとめ:instance ofはプロトタイプチェーンに沿って検索します.左のオブジェクトのプロトタイプチェーンに右のオブジェクトがあれば、trueに戻ります.拡張を判断する対象のタイプ(numberではなく、stringなど)だけに注意してください.
例えば:1 instance of Number->false
"hell" instanceof String ------>string
追加:instance ofの右側は関数、またはコンストラクタでなければなりません.左のオブジェクトのプロトタイプチェーンに右の関数のプロトタイプがあるかどうかを検出します.
3.Object.prototype.toString
オブジェクトの原型上のStating方法によって、タイプを判断することもできます.例を挙げます.
Object.prototype.toString.apply([])-[object Object]
Object.prototype.toString.apply(function)->[object Funct]
Object.prototype.toString.apply->[object Funct]
Object.prototype.toString.apply->[object Funct]
Object.prototype.toString.apply(null)——–[object Null]
Object.prototype.toString.apply–[object Udefined]
使用タイプ:オリジナルオブジェクトとベースタイプ
他にも(4)コントラクションがあります.
(5)duck typeなど