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

PHPz
リリース: 2018-09-29 15:58:42
オリジナル
1653 人が閲覧しました

この記事では、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 ビデオ チュートリアル にアクセスして、関連チュートリアルをご覧ください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート