Javascriptの中のいくつかの「奇異」の特性についても話します.

2434 ワード

Andy CroxallはTen Oddities And Secrets About JavaScriptに彼が思っている10のjavascriptの奇異な特性を羅列しました.全文を見ると、実は一部の特性もそんなに「奇異」ではない.原文については翻訳しないで、文章に沿って自分の理解を話してみましょう.読者の助けになりたいです.
Javascriptの中のいくつかの奇異な特性についても話します.
 
1.Null is an Object(NullはObject)
1
alert(typeof null)/'object
undefinedは値なしの基本タイプを表し、nullは値なしの参照タイプを表します.基本データタイプ(number string bollanなど)は、データタイプのサブクラス(undefinedはnullのサブクラス)を参照します.深く読んでJavascriptを理解することを提案します.02_undefinedとnullを理解します.
1
alert(null instance of Object)//false
instance of検出対象aがオブジェクトbであるかどうかの例の原理は、オブジェクトbのprototypeが指すオブジェクトがオブジェクトaの[prototype]チェーン上にあるかどうかを検出し、そうであればtrueに戻ることである.nullは値がないので、どのオブジェクトにも属さないので、falseに戻り、具体的にはJavascript Object Layout関係図を参照することができる.
2.NaN is a Number(NaNはNumber)
1
alert(typeof NaN)/'Number
2
alert(NaN==NaN)//false
MDC:The value of Number.NaN is Not-A-Numberによると、same as the value of global oject's NaN property.つまりNaNはNumberの属性であり、グローバルオブジェクトの中の一つの属性であり、Number.NaNはNaNと同じである.NaNはどの数字とも等しくなく、NaN自体とも等しくない.
3.An Aray With No Keys==False(空配列イコールfalse)
1
alert(new Aray()=false)//true
new Aray()の戻り値は[]==falseに相当します.この値はtrueです.具体的な進化過程は円心のタイプに変換するのが楽しみです.転化の妙を理解できれば、以下のコードの実行結果も説明に難くない.
1
var someVar=0
2
alert(someVar==false)//true
1
var someVar=[]//空行列
2
alert(someVar==false)//true
3
if(someVar)alert('hello')//alertは実行します.someVarはtrue値に計算されます.
1
var someVar=0
2
alert(someVar==false)//true
3
alert(someVar==false)//false
ちなみに、Aray長さの最大値は4,294,967,295で2^32-1です.
類型転化については、拡張読みをお勧めします.Twisted lognic:understanding truthy&falsy
4.replace()Call Accept a Callback Function(replace関数は1つのコールバック関数を受け入れることができます)
普通、私たちはこのようにreplace関数を使います.
1
alert('10 13 21 48'.replace(/\d+/g、'))//////.すべての数字を*で送ります.
実際には、タイトルの通り、replaceの後にCallbackを受けて、いくつかの追加的な操作を行います.
1
alert('10 13 21 48'.replace(/\d+/g,function(match)
2
    return parseInt<30?'*:match;
3
)//***48 52
各マッチした数値に対して一次三元表式の動作を行います.
5.Reglar Expressions:More Than Just Match and Replace(正規表現については、matchとreplace関数だけではない)
matchとreplace関数以外にもtest関数が使用できます.
1
alert(/\w{3}/.test('Hello')alerts'true'
また、RegExpオブジェクトは、具体的な使い方はドキュメントを参照してください.
正規の学習資料については正規表現に精通することをオススメします.科学研究ではないなら、前半の本を熟読すればいいです.正規表現は30分入門教程もいいです.常備されています.