戦闘へのWebフロントエンドエントリ:詳細のJS加算演算子

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/wewfdf/article/details/102691656

簡単な紹介

JavaScriptは偉大な言語です。あなたは物事をやりたいだけの方法:ように動的変数の異なる種類の演算子を使用して、オブジェクトにメソッドやプロパティを追加する変数の型を変更し、私はその柔軟性を言っています。

しかし、それはダイナミックに支払う、開発者は、変換演算子の種類を処理する方法を知っておく必要があります。プラス記号(+)、等号を(=====(!=と==))など、不等号、多くの事業者があります独自のハンドリング型変換。

加算演算子

最も一般的に使用される演算子:+、デジタルサムの文字列または一連のため、この演算子:

文字列の連結

var result = "Hello, " + "World!";
// 字符串 + 字符串 = 字符串 (连接)
// "Hello, World!"

のデジタル算術和

var result = 10 + 5;
// 数字 + 数字 = 数字 (相加)
// 15

JavaScriptは、オブジェクトの使用を可能にする配列、ヌル、またはオペランドとして未定義。以下の一般的な規則は、変換を明らかにしてみてください。

変換ルール

JavaScriptがオペレータに変換動作のどのタイプを見て、次の式を使用します:

  1. 少なくとも一つのオペランドがオブジェクトである場合、それは元の値(文字列、数値、またはブール)に変換されます。
  2. 少なくとも一つの文字列型のオペランドである場合の変換後に、第2オペランドは、文字列に変換され、接続を行います。
  3. 他の場合には、二つのオペランドは、デジタルに変換され、算術加算を実行しています。

接続操作が実行された場合、2つのオペランドは、プリミティブ型、オペレータチェック少なくとも一つの文字列型かどうかである場合。他の例は、デジタルに変換され、一緒に模索します。

プリミティブ型へのオブジェクトタイプ

の元の型にオブジェクト型変換

  • オブジェクト・タイプが日付の場合は、()オブジェクトのtoStringを呼び出します。
  • valueOf()はプリミティブ型を返す場合は、他のケースでは、それは、オブジェクトののvalueOf()を呼び出します。
  • 他の場合には(のvalueOf()は存在しないか、元の型に戻らなかった場合)、toString()メソッドとほとんどの場合、この変換を呼び出します。

アレイは、元の型に変換されると、JavaScriptがその参加(「」)メソッドを使用して、例えば、[1,5,6]は 『1,5,6』です。原画像の種類に共通のJavaScriptは{}「[対象オブジェクト]」。

学習の例

次の例は、単純および複雑な変身シーンを理解するために私たちを支援します。

例1:数値と文字列

var result = 1 + "5"; // "15"

解像度:

  1. 1+「5」(第2オペランドが文字列で、ルール番号1 2が「1」になります)
  2. "1" + "5"(文字列連結)
  3. 「15」

第二オペランドは、文字列、文字列へのデジタル変換からの最初のオペランド、および接続です。

実施例2:配列とデジタル

var result = [1, 3, 5] + 1; //"1,3,51"

解像度:

  1. [1、3、5] + 1(使用規則1、配列[1、3、5]の元の値に変換される: "1,3,5")
  2. 「1,3,5」+ 1(使用規則は、番号1が文字列「1」に変換されます)
  3. "1,3,5" + "1"(文字列連結)
  4. 「1,3,51」

それは元の文字列の値に変換される第一のオペランドは、文字列が配列次の動作でデジタルデータに変換され、2つのストリングの接続を完了する。

例3:デジタルとブール

var result = 10 + true; //11

解像度:

  1. 10 +真(論理値に基づいて、ルール3が真デジタル1に変換)
  2. 10 + 1(二つの数字評価)
  3. 11

どちらのオペランドがデジタルに文字列、ブール値であるため、その後、算術加算を行います。

例4:デジタルオブジェクトと

var result = 15 + {}; // "15[object Object]"

解像度:

  1. 「+ {15}」(オペランドが第二の目的、プリミティブオブジェクト・タイプ・ストリングに変換するアプリケーションルールである「[対象オブジェクト]」)
  2. 15 +「[対象オブジェクト]」(デジタルストリング15を使用してルール2は、「15」に変換されます)
  3. "15" + "[対象オブジェクト]"(文字列連結)
  4. 「15 [対象オブジェクト]」

文字列値に対する第2の目標オペランドのvalueOf()メソッドは、オブジェクト自体を返すため、それは、toString()メソッドが呼び出された文字列を返し、第二オペランドは現在の文字列である、元の値ではありませんしたがって、図面は、文字列、2つの最終実装を接続文字列に変換されます。

例5:デジタルとヌル

var result = 8 + null; // 8

解像度:

  1. 8 +ヌル(どちらのオペランドが文字列、ヌル・ルールベース3 0デジタルであるため)
  2. 8 + 0(デジタルサム)
  3. 8

オペランドは、被験体または文字列ではないため、NULLがデジタルに変換され、その後数を算出します。

例6:NULL文字列と

var result = "queen" + null; // "queennull"

解像度:

  1. 「クイーン」+ヌル(第一オペランドが文字列、文字列「NULL」に翻訳ヌルベースルール2であるため)
  2. 「女王」+「ヌル」(文字列連結)
  3. 「queennull」

最初のオペランドが文字列であるため、NULL文字列に変換し、文字列を連結します。

例7:未定義の数と

var result = 12 + undefined; // NaN

解像度:

  1. 12 +未定義(オペランドは、オブジェクトまたは文字列ではないため、ルールベースのデジタル未定義NaNに3)
  2. 12 +のNaN(デジタルサム)
  3. NaNの

オペランドはデジタルに未定義のオブジェクトまたは文字列ではないので:NaNは、デジタル合計値が等しくNaNで、そしてためのNaNを検索します。

あなたと学習方法のいくつかを共有するために、六年目のプログラミング、戦闘開発が細部に注意を払う必要があります。767-273-102秋のドレス。ゼロベースのフロントエンドから起動する方法を学習します。前任者は誇らしげにプログラミングの世界に転送する方法を確認するには!常に私は、Webフロントエンドを学びたいと思っていたが、最新のチュートリアルや学習方法(ルートを学習するためのWebフロントエンドシステム、詳細なフロントエンドプロジェクトの戦闘教育ビデオ)で更新、または変更するジョブ、または大学生だけでなく、仕事のスキルをアップグレードしたいです、小さなパートナーを検討しているの参加を歓迎します。私たちは一緒に歩いていく先端の先端

概要

あなたがはっきりとのtoString()またはのvalueOf()メソッドを定義しない限り、潜在的な問題を回避するために、加算演算子の使用に反対しません。例に見られるように、多くの加算演算子の特定の状況があります。正確な変換シナリオは、あなたが将来の事故を防ぐことができます知って、私は幸せな学習をしたいです!

おすすめ

転載: blog.csdn.net/wewfdf/article/details/102691656