JavaScript 上級プログラミング (第 4 版) 読書 共有 メモの記録
始めたばかりの仲間に適用
目次
オペレーター
データ値の操作に使用できる演算子
。算術演算子 (加算や減算など)、ビット演算子、関係演算子、等価演算子が含まれます。ECMAScriptの演算子
は、文字列、数値、ブール値、さらにはオブジェクトを含むさまざまな値に使用できるという点で独特です。
単項演算子
1 つの値のみを操作する演算子は、
単項
演算子
と呼ばれます。
インクリメント/デクリメント演算子
prefix と suffixの 2 つのバージョンがあります。名前のとおり、プレフィックス バージョンは演算対象の変数の前に配置され、サフィックス バージョンは演算対象の変数の後に配置されます。
//前缀递增操作符
let age = 24
++age; //同等于 age = age + 1;
//前缀递减操作符
let age = 29;
--age; //同等于 age = age - 1;
//后缀递增操作符
let age = 24
age++;
//后缀递减操作符
let age = 29;
age--;
プレフィックスのインクリメントとデクリメントはステートメント内で同じ優先順位を持っているため、左から右に評価されます。
let num1 = 2;
let num2 = 20;
let num3 = --num1 + num2;
let num4 = num1 + num2;
console.log(num3); // 21
console.log(num4); // 21 是因为加法使用的也是递减后的值。
後置のインクリメントとデクリメントはステートメントの評価後に発生します。
let num1 = 2;
let num2 = 20;
let num3 = num1-- + num2;
let num4 = num1 + num2;
console.log(num3); // 22
console.log(num4); // 21
単項加算と減算
単項プラスは変数の前に置かれるプラス記号 (
+ ) で表され、値には影響しません。
let num = 25;
num = +num;
console.log(num); // 25
単項マイナスは変数の前に置かれた マイナス記号 (
- ) で表され、主に値を負の値に変換するために使用されます。
let num = 25;
num = -num;
console.log(num); // -25
単項
プラスが数値以外の値に適用される場合、
Number()変換関数
と
同じ型変換が実行されます。ブール値false と trueは0と1に変換され、文字列は特別なルールに従って解析され、オブジェクトは、valueOf( )メソッドやtoString() メソッドを呼び出して、変換可能な値を取得します。
ブール演算子
論理否定
論理 NOT 演算子は感嘆符 (!) で表され、
ECMAScript内の任意の値
に適用できます。
この演算子は、適用されるデータ型に関係なく、常にブール値を返します。論理 NOT 演算子は、まずオペランドをブール値に変換してから、それを否定します。
- オペランドがオブジェクトの場合はfalseを返します。
- オペランドが空の文字列の場合はtrueを返します。
- オペランドが空でない文字列の場合はfalseを返します。
- オペランドが数値0の場合はtrueを返します。
- オペランドがゼロ以外の値( Infinity を含む) の場合はfalseを返します。
- オペランドがnullの場合はtrueを返します。
- オペランドがNaNの場合はtrueを返します。
- オペランドが未定義の場合はtrueを返します。
console.log(!false); // true
console.log(!"blue"); // false
console.log(!0); // true
console.log(!NaN); // true
console.log(!""); // true
console.log(!12345); // false
ロジックと
2 つのアンパサンド ( &&
)で表される論理 AND 演算子は、2 つの値に適用されます。
let result = true && false;
論理的または
論理 OR 演算子は 2 つのパイプ文字 (
||
)で表されます。
let result = true || false;
この動作を使用すると、変数にnullまたは未定義を代入することを回避できます。
let myObject = preferredObject || backupObject;
//如果 preferredObject 不是 null,则它的值就会赋给myObject;如果 preferredObject 是 null,则backupObject 的值就会赋给 myObject。
乗算演算子
乗算演算子
乗算演算子はアスタリスク (
*
) で表され、2 つの数値の積を計算するために使用できます。
let result = 34 * 56;
除算演算子
除算演算子はスラッシュ (
/
) で表され、最初のオペランドを 2 番目のオペランドで除算した商を計算するために使用されます。
let result = 66 / 11;
モジュロ演算子
モジュロ (剰余) 演算子はパーセント記号 (
%
)で表されます。
let result = 26 % 5; // 等于 1
加法演算子
加算演算子
let result = 1 + 2;
両方のオペランドが文字列の場合、2 番目の文字列を最初の文字列の末尾に連結します。
1 つのオペランドのみが文字列の場合は、もう 1 つのオペランドを文字列に変換し、2 つの文字列を連結します
let result = 'hello' + '你好'
let result2 = 5 + "5"; // 一个数值和一个字符串
console.log(result); // "hello你好"
console.log(result2); // "55"
減算演算子
let result = 2 - 1;
関係演算子
関係演算子は、数学の授業で学んだのと同じように、未満 (
<
)、より大きい
(
> )、以下 (
<= )、以上 ( >= ) などの 2 つの値を比較する演算を実行します。 。
等価演算子
等しい、等しくない
等価演算子は 2 つの等号 (
== ) で表され、
オペランドが等しい場合に
trueを返します。
等しくない演算子は感嘆符と等号 (!= ) で示され、
2 つのオペランドが等しくない場合に
trueを返します
。
一致するものと一致しないもの
恒等演算子は 3 つの
等号 (
=== ) で表され、
2 つのオペランドが変換なしで等しい場合にのみ
trueを返します。
let result1 = ("55" == 55); // true,转换后相等
let result2 = ("55" === 55); // false,不相等,因为数据类型不同
不等演算子は、2 つのオペランドが変換せずに等しくない場合にのみ、感嘆符と 2 つの等号 (
!== ) で表されます。
true
を返します
。
let result1 = ("55" != 55); // false,转换后相等
let result2 = ("55" !== 55); // true,不相等,因为数据类型不同
条件演算子
文法:
variable = boolean_expression ? true_value : false_value;
boolean_expression
が
true の
場合はtrue_value
を割り当て
、 boolean_expression がfalseの場合はfalse_valueを割り当てます
代入演算子
- 乗算後の代入 ( *= )
- 除算後の代入 ( /= )
- 係数の後の代入 ( %= )
- 加算後の代入 ( += )
- 減算後の代入 ( -= )
- 左シフト後の代入 ( <<= )
- 右シフト後の代入 ( >>= )
- 符号なし右シフト後の代入 ( >>>= )
場合:
let num = 10;
num = num + 10;
//以上代码的第二行可以通过复合赋值来完成:
let num = 10;
num += 10;
カンマ演算子
次のように、コンマ演算子を使用して 1 つのステートメントで複数の操作を実行できます。
let num1 = 1, num2 = 2, num3 = 3;
代入中にカンマ演算子を使用して値を区切ると、最終的には式の最後の値が返されます。
let num = (5, 1, 4, 8, 0); // num 的值为 0