基本的な算術演算子は *、/、%、+、- です。 +加算を除く他の演算子は、必要に応じて演算子を数値に変換し、積、商、剰余(モジュラス)、差を計算するだけです。数値に変換できない演算はすべて NaN 値に変換されます。オペランド (または変換結果) が NaN 値の場合、算術演算結果も NaN になります
整数と浮動小数点数型を区別するために演算子「/」を使用している場合、演算子「/」は 2 番目のオペランドを最初のオペランドで除算します。プログラミング言語。次に、整数を整数で除算すると、望ましい結果も整数になります。 JavaScript の数値はすべて浮動小数点型であり、除算演算の結果も浮動小数点型になります。たとえば、5/2 の結果は 2 ではなく 2.5 になります。 0 で除算する演算の結果は、正の無限大または負の無限大になります。そして 0/0 の結果は NaN になります。これらすべての操作にエラーはありません。
演算子「%」は、第 1 オペランドから第 2 オペランドまでの係数を計算します。つまり、第 1 オペランドを第 2 オペランドで割った余りです。結果の符号は、第 1 オペランド (被除数) の符号と同じままです。たとえば、5%2 の結果は 1 になり、-5%2 の結果は -1 になります。
剰余演算子のオペランドは通常整数ですが、浮動小数点数でも動作します。 6.5%2.1 は 0.2 であることがわかります。 (0.1999999999999973)
i. "+" 演算子
バイナリ加算演算子 "+" は 2 つの数値を加算でき、文字列の連結演算も実行できます:
1+2 //=> 3 "hello" + "" + "there" // =>"hello there" "1"+"2" //=>"12"
両方のオペランドが数値の場合、またはそれらがすべて文字列の場合、計算は結果は明らかです。ただし、その他の場合には、必要な型変換をいくつか実行する必要があります。また、演算子の動作は型変換の結果によって異なります。技術的に言えば、加算演算子の動作は次のとおりです。
オペランドがオブジェクトの場合、オブジェクトはプリミティブ値へのオブジェクトの変換規則に従ってプリミティブ クラス値に変換されます (第 3 章、セクションを参照) 8、セクション 3)。日付はオブジェクトの toString() メソッドによって変換され、他のオブジェクトは valueOf() メソッドによって変換されます (valueOf() メソッドがプリミティブ値を返す場合)。ほとんどのオブジェクトには利用可能な valueOf() メソッドがないため、 toString() メソッドを通じて取得と交換を実行します
オブジェクトを元の値に変換した後、操作の 1 つが文字列の場合、他の操作も数値になります。文字列に変換されます。次に、文字列の連結を実行します。
それ以外の場合、両方のオペランドが数値 (または NaN) に変換されてから加算演算が実行されます。
ここにいくつかの例があります
1 + 2 //=>3 加法 "1" + "2" //=>"12" 字符串连接 "1" + 2 //=>"12"数字转换为字符串后进行字符串连接 1 + {} //=>"1[object object]":对象转换为字符串后进行字符串连接 true + true //=>2 布尔值转换为数字后做加法 2 + null //=>2 null转换为0后做加法 2 + undefined //=>NaN undefined转换为NaN做加法
最後に、特に注意すべき点があります。加算演算を文字列で使用する場合、演算の順序に対する加算の影響を考慮する必要があります。つまり、演算の結果は、
1 + 2 + "bmice" //=> "3 bmice" 1 + (2 + "bmice") => "12bmice"
ii などの演算子の演算順序によって異なります。単項演算子は 1 つのオペランドに作用します。そして新たな価値を生み出します。 JavaScript では、単項演算子は優先順位が高く、右結合です。このセクションでは、必要に応じて演算を数値に変換する単項演算子 (+、-、++、および --) について説明します。 + - は単項演算子と二項演算子であることに注意してください。
単項加算 +
単項加算演算子は、オペランドの数値を数値 (または NaN) に変換し、変換された数値を返します。オペランド自体が数値の場合、その数値が直接返されます。
1元減算法-号 1ドル計算記号を作成するとき、必要に応じて演算回数を数値に変換し、計算結果の記号を変更して++を増加させます。 " 演算記号。オペランドはインクリメント (+1) 演算を実行し、オペランドは左辺値 (変数、配列要素、またはオブジェクト属性) です。演算子はオペランドを数値に変換します。次に、その数値に 1 を加算し、加算した値を変数、配列要素、またはオブジェクトのプロパティに再割り当てします。
インクリメント ++ 演算の戻り値は、オペランドに対する位置によって異なります。 concrementプレインクリメントオペレーターとして計算できます。
「ポストインクリメント」演算子と呼ぶことができます。
var i = 1, j = ++i //i と j の値は両方とも 2
var i = 1,j = i++ //i は 2、j は 1; ++x は合計 x=x+1 とまったく同じになるように計画されていることに注意してください。「++」演算子は文字列の連結を実行せず、常にオペランドを数値に変換して 1 ずつ増分します。 xは文字列「1」、+ +xの結果は数値2、x+1は文字列「11」です
デクリメントとインクリメントの演算方法は同じで、オペランドを配列に変換し、そしてそれを 1 ずつ減らします
iii。
ビット演算子は、数値で表されるバイナリデータに対して下位レベルのビット演算を実行できます。これらは従来の純粋な数学演算ではありませんが、数値型を操作して数値を返すため、ここでは算術演算子として分類されます。
以上がJavaScript基礎講座で算術式の定義と使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。