ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript のあいまいさプラス記号 ' '_javascript スキル

JavaScript のあいまいさプラス記号 ' '_javascript スキル

WBOY
リリース: 2016-05-16 17:41:22
オリジナル
1146 人が閲覧しました

JavaScript では、1 つのプラス記号に演算子として 3 つの機能があります。文字列の連結を表すことができます。例:

コードをコピー コードは次のとおりです:

var str = 'こんにちは' '世界!'

または数値の正の値を表す単項演算子。例:

コードをコピー コードは次のとおりです。 :

var n = 10;
var n2 = n;
または、数値式の合計演算を表します。例:


コードをコピー コードは次のとおりです: var n = 100;
var nn2 = n 1;
3 つの表現のうち、文字列の連結と数値の合計はあいまいになりがちです。 JavaScript におけるこれら 2 つの演算の処理はデータ型に依存するため、演算子からは判断できません。式だけを見てみましょう:


コードをコピーします


コードは次のとおりです: aa = a b; は、その本当の意味が合計なのか文字列の連結なのかを知る方法がありません。これは、JavaScript エンジンがいつ構文解析を実行するかを判断することも不可能です。
プラス記号 " " によって引き起こされる主な問題は、別のルールに関連しています。このルールは、「式に文字列が含まれる場合、文字列の連結が優先される」です。例:


コードをコピー


コードは次のとおりです:var v1 = '123' ; var v2 = 456; //結果の値を文字列 '123456' として表示します。


一部のホストで発生します 問題が発生しました。たとえば、ブラウザでは、DOM モデル内の多くの値は数値のように見えますが、実際には文字列です。したがって、「and」演算を実行しようとすると、「文字列連結」演算になってしまいます。次の例は、この問題を示しています:





コードをコピー


コードは次のとおりです:

ID testPic の IMG 要素には幅 1 の境界線があることがわかります。デフォルトの単位 px (ピクセル、ピクセル ポイント) は省略されています。ただし、次のコードで境界線を広げようとすると、エラーが発生します (一部のブラウザは値を無視し、他のブラウザは例外をポップアップし、一部のブラウザはクラッシュする可能性があります):


コードをコピーします


コードは次のとおりです:

実際、DOM モデルでは、borderWidth は統一された文字列値であるため、ここでの値は「1px」になります。 JavaScript 自体はエラーを起こさず、次のような操作を完了し、その値を borderWidth に割り当てます:



コードをコピー


コードは次のとおりです:

現時点では、ブラウザのDOMモデルは「1px10」の意味を解釈できないため、エラーが発生します。 borderWidth 値を再度読み取ると、値は 1px のままです。では、上記の操作プロセスを証明するにはどうすればよいでしょうか?次のコードは、JavaScript 操作の結果が 1px10 であることを示していますが、borderWidth に割り当てられると、DOM はこの間違った値を無視するため、borderWidth は実際には変更されません:



コードをコピーします


コードは次のとおりです:

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