1

同僚から質問を受けました。私はこの質問に答えることができません。

var x = '9'; // Line no 1
x=='7' // Line no 2
//doing something with x

2行目はエラーを出していません。

別のシナリオ

var x == '7';

ブラウザ:SyntaxError:欠落; ステートメントの前

これは、割り当てが常に単一の「=」によって行われるためです。

質問 :

  1. 最初のシナリオはどのように実行されますか?
4

3 に答える 3

4
x == '7'

この行はブール式です。その値は計算され、単純に破棄されます。一部の人々はヨーダ記法を使用することを奨励しています

if(7 == x)

それ以外の

if(x == 7)

誤って入力if(x = 7)してバグを見つけにくくしないようにするためです。

これ

var x == '7'

一方、は変数宣言であると想定されているため、ここでは==演算子は不正です。

于 2013-01-28T09:38:12.180 に答える
1

Javascriptはx=='7'として見ます(x=='7')

基本的にあなたは持っています:

var x = '9'; // Line no 1
false;
//doing something with x

Jsエンジンが評価しfalseます。次に、次の命令に進みます。

于 2013-01-28T09:39:29.083 に答える
0

==は割り当てではなく、ブール式です。

ブラウザは、戻り値が使用されておらず、このビットを実行しないことによって最適化されていることを認識していると思われます。

どのブラウザ(またはインタプリタ)を使用していますか?

于 2013-01-28T09:39:31.923 に答える