この記事では、JavaScript プログラミングでバグが発生しやすいヒントを 8 つまとめて紹介しています。この記事は、理解していないとプログラミングで問題が発生する可能性があるため、参考にしてください。 🎜>
JavaScript は今日最も人気のあるプログラミング言語の 1 つですが、その人気は言語自体のさまざまな機能の副作用でもあり、その言語がどれほど美しくても、依然として何千人もの人々が使用しています。それは毎日、何万人ものプログラマーが大量のバグを作成しました。まだ他人を笑わないでください。もしかしたらあなたもその一人かもしれません。
例として、完全に有効な短い JS スニペットをいくつか示します (コンソールで試してみることができます):
1 2 3 4 5 6 | typeof NaN === 'number'
Infinity === 1/0
0.1 + 0.2 === 0.3
"3" + 1
"3" - 1
|
ログイン後にコピー
まだ信じますかそれはあなた自身のJavaScriptですか?
1. JS の最小値
Number.MIN_VALUE は JavaScript が表現できる最小値として使用されますが、これはJS で最も近い値は 0
2 です。文字列接続
1 2 | ( "foo" + + "bar" ) === "fooNaN"
"why I am " + typeof + ""
|
ログイン後にコピー
JS は "foo" ("bar") に解析されます。 「bar」を数値に変換します
3. parseInt 関数
1 2 3 | parseInt('06');
parseInt('08');
parseInt(null, 24) === 23
|
ログイン後にコピー
4. null はオブジェクトです
1 2 | typeof null
null instanceof Object
|
ログイン後にコピー
5. return によって返されるコンテンツ
1 2 3 4 5 6 7 8 | function myjson()
{
return
[
2
]
}
myjson();
|
ログイン後にコピー
return によって返されるコンテンツは return
6 と同じ行にある必要があります。
1 2 3 4 5 6 7 8 9 10 | 012 == 12
'012' == 12
"3" + 1
"3" - 1
0.1 + 0.2 == 0.3
0.1 + 0.7 == 0.8
0.2 + 0.7 == 0.9
9999999999999999
9999999999999999-1
111111111111111111111
|
ログイン後にコピー
7. 奇妙なパラメータ
1 2 3 4 5 6 | function hello(what) {
alert(arguments[0]);
what = "world" ;
return "Hello, " + arguments[0] + "!" ;
}
hello( "vicky" );
|
ログイン後にコピー
8. 頭を悩ませる等号
1 2 3 4 5 6 7 8 9 10 11 12 | NaN === NaN;
[] == false;
"" == false;
null == false;
[] == ![]
window.window == window
window.window === window
window == document
( "0" && {}) == 0
(0 && {}) == 0
0 == "0"
[] == 0
|
ログイン後にコピー
以上です。この章の内容全体については、
JavaScript ビデオ チュートリアル にアクセスして、関連チュートリアルをご覧ください。