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

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

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

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

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

例として、完全に有効な短い JS スニペットをいくつか示します (コンソールで試してみることができます):


1

2

3

4

5

6

typeof NaN === 'number' // true

  

Infinity === 1/0        // true

0.1 + 0.2 === 0.3       // false,前面加括号也一样

"3" + 1                 // '31' 

"3" - 1                 // 2

ログイン後にコピー
まだ信じますかそれはあなた自身のJavaScriptですか?

1. JS の最小値

1

Number.MIN_VALUE > 0; //true

ログイン後にコピー
Number.MIN_VALUE は JavaScript が表現できる最小値として使用されますが、これはJS で最も近い値は 0

2 です。文字列接続

1

2

("foo" + + "bar") === "fooNaN"  //true

"why I am " + typeof + ""       // why I am number

ログイン後にコピー
JS は "foo" ("bar") に解析されます。 「bar」を数値に変換します

3. parseInt 関数

1

2

3

parseInt('06'); // 6

parseInt('08'); // 0  注意,谷歌新版已修正

parseInt(null, 24) === 23 // true

ログイン後にコピー

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

1

2

typeof null  // object

null instanceof Object  // false

ログイン後にコピー

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

1

2

3

4

5

6

7

8

function myjson()

{

   return

   [

     2

   ]

}

myjson();  // undefined

ログイン後にコピー
return によって返されるコンテンツは return

6 と同じ行にある必要があります。

1

2

3

4

5

6

7

8

9

10

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. 奇妙なパラメータ

1

2

3

4

5

6

function hello(what) {

     alert(arguments[0]);    //vicky

     what = "world";

     return "Hello, " + arguments[0] + "!";

}

hello("vicky"); //"Hello, world!"

ログイン後にコピー

8. 頭を悩ませる等号

1

2

3

4

5

6

7

8

9

10

11

12

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート