5
私は、サードパーティ製のwordpressプラグインで、javascriptコードマイナーに起因すると思われるバグを発見しました。javascriptで++の文字列とリテラルで異なるエラーが発生するのはなぜですか?
:これは、Chromeで、次のエラーになりthis.id="ui-id-"+++n;
:
this.id = "ui-id-" + ++n;
代わりに縮小されていた:
元のコードは、私は信じている、このことになりました。
Uncaught ReferenceError: Invalid left-hand side expression in postfix operation
Firefoxでも同様のエラーが発生します。うんざりすると、Chromeでは自分のプラグインJavascriptの機能は正常に作成されましたが、Firefoxではこのエラーが原因で機能が作成されず、プラグインが失敗しました。
var n = 1;
var foo = 10;
var bar = "ID-";
console.log(foo+++n); // results in 11
console.log(foo); // also results in 11
console.log(bar+++n); // results in NaN soft error/warning
console.log ("ID-"+ ++n); // results in ID-2
console.log ("ID-"+++n); // hard error
私はここで聞いてどのような質問は本当にわからないんだけど -
- なぜ+++常に+ ++として解釈されますでしょうか?
- このバグの原因となっているのはどのマイナーですか?
- FirefoxがこのエラーをChromeよりも深刻に扱うのはなぜですか、Wordpressの独自のJavaScript機能が作成されないのはなぜですか?
- なぜbar ++はソフトエラー(NaN)を取得しますが、 "ID - " ++はハードエラーを起こしますか?