JavascriptのNaN、undefinedについて

4084 ワード

一、前言
私のような菜鳥の人にとって、JavaScriptについてはよく知っているが、jQueryの毛皮を頼りに、Jsに精通していると言っている(履歴書には誇張されていて、面接の時は心が底をついていない).幸いなことに、自分がわかって、壁を考えたことがあります.
勉強は堅実で,傲慢で焦りを戒めるべきだ.
「自分は何でもできると思いますが、何もできません」という奇妙な現象があります.时にはデブを一口で食べたいと思っていますが、力が足りないので、手がつけられないようです.今日はこれを勉強して、明日はあれを勉強して、すべての計画の変化は従うことができません.私もそうですので、ブログ園の皆さんにアドバイスをお願いしたいと思います.弟はこれ以上感謝しました.
今日は仕事中にいくつかのJsの問題に遭遇しました.例えば、NaN、今日は水と野菜の総括をしましょう.(注:多くはネットのパッチワークから来て、少し個人的な理解を混ぜて、よだれがあれば、多く含んで、菜鳥を思いやるようにしましょう)
二、JavaScriptグローバルオブジェクトについて
どのように理解して、例えばjsがプログラミングする時、わけがわからないのはもしかすると現れて、例えば:NaN、undefinedなど;String()関数オブジェクトの値を文字列に直接変換したり、parseInt()で文字列を解析して整数を返したりすることができますが、事前に定義していません.簡単な理解は「持参した、直接使える」ということです.
グローバル属性:undefined、Infinity、NaN
グローバル関数:isNaN()、parseInt()、eval()
コンストラクション関数:Date()、RegExp()、String()、Object()、Array()
グローバルオブジェクト:Math、JSON
コードの最上位レベルで、関数内にないJsコードはキーワードthisを使用してグローバルオブジェクトを参照できます.
var global = this;//               
alert(global) //  [object Window]

クライアントでは、ブラウザウィンドウに表示されるすべてのJsコードで、Windowオブジェクトはグローバルオブジェクトとして機能し、自身のwindowプロパティを参照します.
W 3 Cの説明:グローバル属性と関数は、すべての組み込まれたJavaScriptオブジェクトに使用できます.
延長:Pythonのいくつかの組み込み関数のように
具体的な参考:http://www.w3school.com.cn/js/jsref_obj_global.asp
このトピックに一致するものは、グローバル関数:isNaN():値が数値グローバル属性であるかどうかを確認する:NaN():値が数値値であるかどうかを示す
三、NaN属性
NaNは「Not a Number」の略で、数字ではなく、演算が正しい数値を返すことができない場合、「NaN」の値を返すという意味です.次のようになります.
1 var a = 10,b = 'mm';
2 alert(a*b)

ではNaNがポップアップされ、Nanが現れた場合、プログラムはまだ実行されていますが、潜在的なBug、例えば遅延などがあります.私たちはこのようにすることができます.
(1)、数値演算が正しいかどうか、数値と非数値の間の演算があるかどうか、タイプが一致しているかどうかをチェック(2)、If条件文を用いて、NaNをフィルタリングする
ここで注意したいのは、(1):for/inループを使用してNaNプロパティを列挙することはできません.delete演算子を使用して削除することはできません(2):NaNは定数ではありません.他の値に設定できます.
1 alert(NaN);//   NaN
2 
3 c=Nan;
4 alert(c);//    ,         ,       

四、isNaN()
sNaN()関数は、そのパラメータが非数値であるかどうかを確認するために使用されます.
ヒント:isNaN()関数は、通常、parseFloat()およびparseInt()の結果を検出して、それらが合法的な数字であるかどうかを判断するために使用されます.もちろんisNaN()関数を用いて算数エラーを検出することも可能であり,例えば0を除数とする場合である.
1 var day = new Date();
2 alert(isNaN(3.1415926))        //false
3 alert(isNaN(day))            //false
4 alert(isNaN('BeginMan'))    //true
5 alert(isNaN("2005/12/12"))    //true

五、undefined
 if (reValue== undefined){
    alert("undefined");
    }
  //       ,         typeof
//  :
if (typeof(reValue) == "undefined") {
   alert("undefined");
}   

typeofは文字列を返し、「number」、「string」、「boolean」、「object」、「function」、「undefined」の6つの可能性があります.
参照先:http://www.cnblogs.com/binaryworms/archive/2010/04/08/1707064.html