JavaScriptについて本当に知っていますか?

2483 ワード

JavaScriptは今最も人気のあるプログラミング言語の一つですが、人気があるのは同時にこの言語自身の各種の特性がもたらす副作用です.この言語がどんなに素晴らしいかに関わらず、毎日何千何万のプログラマーがいっぱいのバグを作り出しています.人を笑わないでください.あなたもその中の一人かもしれません.
一つの例をあげます.以下は簡単で効果的なJSフラグメントです.
typeof NaN === 'number' // true
 
Infinity === 1/0        // true

0.1 + 0.2 === 0.3       // false,        

"3" + 1                 // '31'  
"3" - 1                 // 2
自分のJavaScriptをまだ信じていますか?
1、JSの最小値
Number.MIN_VALUE > 0; //true
Number.MIN_VALEはJavaScriptで表現できる最小値で、5 e-324であるが、JSの中で最も0に近い数である.
2、文字列接続
("foo" + + "bar") === "fooNaN"  //true
"why I am " + typeof + ""       // why I am number
JSは「foo」+(+「bar」)と解析します.これは「bar」を数字に変えます.
3、パー秒Int関数
parseInt('06'); // 6
parseInt('08'); // 0    ,       
parseInt(null, 24) === 23 // true
4、nullはobjectですか?
typeof null  // object
null instanceof Object  // false
5、リセット内容
function myjson()
{
   return
   [
     2
   ]
}

myjson();  // undefined
リターンの内容はreturnと同じ行にある必要があります.
/********         ********* /  
    :        
    :blog.csdn.net/mycwq  
/ *******      copy  *********/ 
6、変な数字
 012  == 12  // false
'012' == 12  // true
 "3" + 1     // '31'
 "3" - 1     // 2
0.1 + 0.2 == 0.3 // false
0.1 + 0.7 == 0.8 // false
0.2 + 0.7 == 0.9 // false
9999999999999999 // 10000000000000000
9999999999999999-1 //10000000000000000
111111111111111111111 // 111111111111111110000
7、怪しいパラメータ
function hello(what) {
     alert(arguments[0]);    //vicky
     what = "world";
     return "Hello, " + arguments[0] + "!";
}

hello("vicky"); //"Hello, world!"
8、大きな等号
NaN === NaN;   // false
[] == false;   // true
"" == false;   // true
null == false; // false
[] == ![]      // true

window.window == window  // true
window.window === window // false,      true
window == document       // true,      false

("0" && {}) == 0 // false
(0 && {}) == 0   // true
0 == "0"         // true
[] == 0          // true
参照
http://blog.csdn.net/mycwq/article/details/17503731
http://wtfjs.com