JS演算子 - 算術演算子、論理演算子、代入演算子、関係演算子、条件演算子

1、事業者の基本的な考え方

  • オペレータは、オペレータと呼ばれています
  • これは、オペレータが1つ以上の値で動作し、演算結果を取得することができます
  • たとえば、次のtypeof演算子は、値型で得ることができるされています
  • 値の型は、文字列を返します。
  • 未定義のオブジェクトブール数文字列

2、算術演算子

  • 算術演算子
  • 未計算の種類数の値は、その後、演算数にこれらの値を変換し、NaN値は、任意の動作のNaNを有しないとき
  • +(プラス記号):
  • あなたは、2つの値を加算し、その結果を返すこともできます
  • 二つの文字列の加算演算は、戦うことになる文字列は、文字列を返すに一緒に2つの文字列を作る場合
  • 任意の文字列値と加算を行うには、最初の文字列と文字列の操作が戦いを行う、その後、文字列に変換されています
  • - (マイナス):2つの値の減算することと、結果を返すことができます
  • *(乗算):乗算は2つの値であってもよいです
  • /(分割数):2つの値の分割であってもよいです
  • %(剰余):モジュロ演算(余りをとります)

2.1プラス

var a = 123;		
var result = typeof a;
result = a + 1;  // 拼串
result = 456 + 789;  //数值的加法运算
result = true + 1;  // 先对true进行数据转换,然后再进行加法运算
result = true + false;  // 先对true和false都进行数据转换,然后再进行加法运算
result = 2 + null;
result = 2 + NaN;
result = "你好" + "大帅哥";  //拼串
var str = "锄禾日当午," +
          "汗滴禾下土," +
          "谁知盘中餐," +
          "粒粒皆辛苦";
result = 123 + "1";  // 拼串
result = true + "hello";  // 拼串

マイナス2.2

result = 100 - 5;
result = 100 - true; // 先对true进行数据转换,然后再进行加法运算
result = 100 - "1";  // 99  先对字符串“1”进行数据转换,然后进行运算

2.3乗算記号

result = 2 * 2;  // 4
result = 2 * "8"; // 16
result = 2 * undefined; // 0
result = 2 * null; // 0

2.4除算

result = 2 / 2;  // 1
result = 2 / "8"; // 0.25
  • 要約:
  • 操作は自動的に数値に変換されます* / - 任意の値を実行します。
    • 私たちは、暗黙の型変換を行うために、この機能を使用することができます
    • 数値に変換することにより、0 * 1/1 A
    • 原則と番号()関数のような、より使いやすく

2.5モジュロ(剰余数)

result = 9 % 3;  // 0
result = 9 % 4;  // 1
result = 9 % true;  // 0
result = 9 % "5";  // 4

第三に、単項演算子

  • 単項演算子、一つだけのオペランド
  • 正の符号は、デジタル上の任意の効果を持っていません。
  • マイナス負の符号は、デジタル否定することができます
  • 非数の値のタイプについて、それは、その後の操作で、数に変換されます。
  • 番号、同一の原理及びその番号()関数に変換するために、異なるデータ型+ために使用することができます。
var a = 123;
a = -a;
a = true;  // 1
a = "18";  // 18
a = +a;  // 可以将true及字符串“18”转换为对应的数值
console.log(typeof a);
var result = 1 + +"2" + 3;

第四に、インクリメントデクリメント

  • インクリメント++
    • 独自の基礎に1ずつインクリメント変数を増やすことができます
    • 後続の増分変数は、元の変数の値を直ちにインクリメントされる1
    • 増分は2つに分かれ:++(++)とフロント++(++)後
    • それは++や++であるかどうか、元の変数の即時値を1ずつインクリメントされる原因になります
  • そして除く++ ++という別の値
    • A ++値は、元の変数の値に等しい(インクリメント前の値)
    • ++値が(増加値から)新しい値に等しいです
  • デクリメント -
    • これは、に基づいて保存保存1から自身によって可変にすることができます
    • (A-)とフロント - - 後(-a):デクリメント二分
    • A--かどうか-A-がマイナス1から元の変数の即値を引き起こします
  • 違いはA--及び-A-と異なる値であります
    • A--変数は、元の値(減算前の値)であります
    • -a変数は、新しい値(デクリメント後の値)であります
var num = 10;		
console.log(num--);  // 10
console.log(num--); // 9

var num = 10;		
console.log(--num);	  // 9

console.log("num = "+num);

5つの論理演算子

  • JSはを提供してくれるの3種類の論理演算子は、次の3つのことを行うことができる3つの演算子:

    • ブールタイプのデータ操作の直接的。
    • 非ブール型で最初に操作、ブール値に変換し、元の値を返します。
    • JS文ため次いで、最初のステートメントJS決意の実行結果、及びその結果に基づいて第2を実行するか否かを判定する。
  • !NOT演算

    • !バリューは非動作のために使用することができます
    • 値の計算は、非呼ばれるブール値ネゲート操作真が偽となり、偽が真となり、
    • 二度の値が否定ならば、それは変更されません
    • 非ブール値の要素ならば、ブール値に変換し、その後、否定
    • 我々は、ブール値に異なるデータ型に変換するには、この機能を使用できるように。
    • ブール値、原則とブール()関数に変換するために、任意のデータ型に二回のトランスを取ることができます
  • && AND演算

    • &&缶シンボル操作の両側の値と結果を返します
    • 運用ルール:長い偽の値を返します偽があるとして二つの値、
    • 両方の値が真であるときにのみ、trueを返します、「と」に属するにおけるJS 短絡動作や最初の値がfalseの場合は、第2の値は表示されません。
  • || OR

    • ||演算子は、値の両側にログインして結果を返すことができる論理和
    • **動作ルール:長い真があるとして**二つの値は、trueを返します
    • 二つの値がfalseであれば、それは「または」最初の値がtrueの場合や、短い、第2の値がチェックされていない所属で、JSをfalseを返します。

5.1!NOT演算(他のタイプのデータは、ブールを転送することができます)

var a = false;
a = !a; //对a进行非运算
//console.log("a = "+a);
var b = 10;
b = !!b; //对B进行数据类型转换
//如果两个值都是true则返回true
var result = true && true;
//只要有一个false,就返回false
result = true && false;  //第一个值为true,会检查第二个值
result = false && true;  //第一个值为false,不会检查第二个值
result = false && false;

5.3 || OR(遭遇した条件が真である、終了)

//两个都是false,则返回false
result = false || false;
//只有有一个true,就返回true
result = false || true ; //第一个值为false,则会检查第二个值
result = true || false;  //第一个值为true,则不再检查第二个值
result = true || true ;

5.4非ブール値

result = 0 && 2;  // 0
result = 2 && 0;   // 2
//false && false
result = NaN && 0;  // NAN
result = 0 && NaN;  // 0

//如果第一个值为true,则直接返回第一个值
result = 2 || NaN;  // 2
result = 2 || 0;  // 2
//如果第一个值为false,则直接返回第二个值
result = NaN || 1;  // NAN
result = NaN || 0;  // NAN

第六に、代入演算子

  • =(等号)//右の値シンボルシンボルの左側に割り当てることができます
  • + =(イコール記号)// A + = 5 = A + 5と同等です
  • - =(等号マイナス)// - = 5は、A = Aに相当し、 - 5
  • * =(イコール記号乗算)// * = 5 = *と同等です5
  • / =(イコール記号他の)// A / = 5 = A / 5に相当します
  • %=(イコール記号剰余)// = 5%が、A = A 5%に相当します

七、関係演算子

  • 場合は、関係演算子によって2つの値の間の大小関係を比較することができる関係が成立するならば、それは、trueを返す関係が確立されていない、それはfalseを返します。
  • 記号より>グレーター
    • 値は、右の左のシンボルの値よりも大きいか否かを決定します
    • 関係が確立されるとの関係はfalseを返しますが確立されていない場合は、trueを返します
  • > =より大きいか等しいです
    • 値が正しい値の左側以上シンボルであるかどうかを決定します
  • <より小さい
  • <=以下で
  • ノン値
    • 非数値を比較すると、その後、デジタル比較に変換
    • 両方の値は、シンボルの文字列である場合、それはデジタルコンパレータに変換されなくなり、各Unicode文字列をコードするコンパレータ。
    • 対応するUnicodeエンコーディングを照会するcharCodeAt()メソッドを使用することができます。
console.log(1 > true); //false
console.log(1 >= true); //true
console.log(1 > "0"); //true
console.log(10 > null); //true
//任何值和NaN做任何比较都是false
console.log(10 <= "hello"); //false
console.log(true > false); //true
console.log("1" < "5"); //true

八、等価演算子

  • ==等価演算子2つの値が等しい比較する等価演算子、
    • 真同じデータタイプと等しい戻り、そうでない場合はfalseを返します。
    • 値の異なる型は、型変換が自動的に行われる場合、同じタイプ、次に比較に変換します。
  • !=等しくない:不平等は、2つの値が等しい戻り値は、そうでない場合はfalse、等しくない場合はtrueではないかどうかを判断するために使用
    • 使用!=等しくない演算子DO
    • 変数の自動型変換を等しくしません、それは偽を返します場合、変換はに等しく、
  • ===合同(型判定のために使用することができます)
    • 異なるタイプの2つの値は、直接偽を返す場合、それは、自動型変換を行わないことを除いて、等しいと類似しているかどうか2つの合同値を決定するために使用されます。
  • !==厳密な不等価(判決の種類を作るために使用することができます)
    • 決定するために使用される二つの値と不完全、等しくない、かどうか、のような異なるタイプの2つの値は、直接にtrueを返す場合には、自動型変換を行わないことを除いて。
console.log(10 != 5);   //true
console.log(10 != 10);   //false
console.log("abcd" != "abcd");   //false
console.log("1" != 1);  //false
console.log("123" === 123);  //false
console.log(null === undefined);   //false
console.log(1 !== "1");   //true

**注:**できますisNaN()関数の値がtrueの場合、値がNaN、NaNであるかどうかを決定するために返され、そうでない場合はfalse

IX条件演算子

  • 条件演算子は、三項演算子と呼ばれています
  • 構文:
    • ?条件式ステートメント1:文2;
  • プロセスの実行:
    • 実行条件演算子は、最初に、条件式の値がtrueの場合、文を実行し、評価し、結果を返しています。値がfalseの場合、文の2が実行し、結果を返します。
    • その後、ブール演算に変換されます非ブール値に条件式が評価された場合。

構文例:

false?alert("语句1"):alert("语句2");
var a = 300;
var b = 143;
var c = 50;
a > b ? alert("a大"):alert("b大");
// 获取a和b中的最大值
var max = a > b ? a : b;
// 获取a b c 中的大值
max = max > c ? max : c;
false?alert("语句1"):alert("语句2");
var a = 300;
var b = 143;
var c = 50;
a > b ? alert("a大"):alert("b大");
// 获取a和b中的最大值
var max = a > b ? a : b;
// 获取a b c 中的大值
max = max > c ? max : c;
公開された20元の記事 ウォン称賛11 ビュー1736

おすすめ

転載: blog.csdn.net/qq_16221009/article/details/103989947