ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript プログラミングで簡単にバグを引き起こす方法に関するヒント

JavaScript プログラミングで簡単にバグを引き起こす方法に関するヒント

PHPz
PHPzオリジナル
2016-05-16 16:16:451654ブラウズ

この記事では、JavaScript プログラミングでバグが発生しやすいヒントを 8 つまとめて紹介しています。この記事は、理解していないとプログラミングで問題が発生する可能性があるため、参考にしてください。 🎜>

JavaScript は今日最も人気のあるプログラミング言語の 1 つですが、その人気は言語自体のさまざまな機能の副作用でもあり、その言語がどれほど美しくても、依然として何千人もの人々が使用しています。それは毎日、何万人ものプログラマーが大量のバグを作成しました。まだ他人を笑わないでください。もしかしたらあなたもその一人かもしれません。

例として、完全に有効な短い 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_VALUE は JavaScript が表現できる最小値として使用されますが、これはJS で最も近い値は 0

2 です。文字列接続

("foo" + + "bar") === "fooNaN"  //true
"why I am " + typeof + ""       // why I am number
JS は "foo" ("bar") に解析されます。 「bar」を数値に変換します

3. parseInt 関数

parseInt('06'); // 6
parseInt('08'); // 0  注意,谷歌新版已修正
parseInt(null, 24) === 23 // true

4. null はオブジェクトです

typeof null  // object
null instanceof Object  // false

5. return によって返されるコンテンツ

function myjson()
{
   return
   [
     2
   ]
}
myjson();  // undefined
return によって返されるコンテンツは return

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
以上です。この章の内容全体については、

JavaScript ビデオ チュートリアル にアクセスして、関連チュートリアルをご覧ください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。