@@ -696,76 +696,6 @@ console.log((-9) >>> 2); // => 1073741821
696
696
697
697
<!-- textlint-enable eslint -->
698
698
699
- ## 代入演算子(` = ` ) {#assignment-operator}
700
-
701
- 代入演算子(` = ` )は変数に対して値を代入します。
702
- 代入演算子については「[ 変数と宣言] ( ../variables/README.md ) 」の章も参照してください。
703
-
704
- {{book.console}}
705
- ``` js
706
- let x = 1 ;
707
- x = 42 ;
708
- console .log (x); // => 42
709
- ```
710
-
711
- また、代入演算子は二項演算子と組み合わせて利用できます。
712
- ` += ` 、` -= ` 、` *= ` 、` /= ` 、` %= ` 、` <<= ` 、` >>= ` 、` >>>= ` 、` &= ` 、` ^= ` 、` |= ` のように、演算した結果を代入できます。
713
-
714
- ``` js
715
- let num = 1 ;
716
- num += 10 ; // num = num + 10; と同じ
717
- console .log (num); // => 11
718
- ```
719
-
720
- ### [ ES2015] 分割代入(Destructuring assignment) {#destructuring-assignment}
721
-
722
- 今まで見てきた代入演算子は1つの変数に値を代入するものでした。
723
- 分割代入を使うことで、配列やオブジェクトの値を複数の変数へ同時に代入できます。
724
- 分割代入は短縮記法のひとつでES2015から導入された構文です。
725
-
726
- 分割代入は、代入演算子(` = ` )を使うのは同じですが、左辺のオペランドが配列リテラルやオブジェクトリテラルとなります。
727
-
728
- 次のコードでは、右辺の配列の値を、左辺の配列リテラルの対応するインデックスに書かれた変数名へ代入します。
729
-
730
- {{book.console}}
731
- ``` js
732
- const array = [1 , 2 ];
733
- // aには`array`の0番目の値、bには1番目の値が代入される
734
- const [a , b ] = array;
735
- console .log (a); // => 1
736
- console .log (b); // => 2
737
- ```
738
-
739
- これは、次のように書いたのと同じ結果になります。
740
-
741
- ``` js
742
- const array = [1 , 2 ];
743
- const a = array[0 ];
744
- const b = array[1 ];
745
- ```
746
-
747
- 同様にオブジェクトも分割代入に対応しています。
748
- オブジェクトの場合は、右辺のオブジェクトのプロパティ値を、左辺に対応するプロパティ名へ代入します。
749
-
750
- {{book.console}}
751
- ``` js
752
- const obj = {
753
- " key" : " value"
754
- };
755
- // プロパティ名`key`の値を、変数`key`として定義する
756
- const { key } = obj;
757
- console .log (key); // => "value"
758
- ```
759
-
760
- これは、次のように書いたのと同じ結果になります。
761
-
762
- ``` js
763
- const obj = {
764
- " key" : " value"
765
- };
766
- const key = obj .key ;
767
- ```
768
-
769
699
## 論理演算子 {#logical-operator}
770
700
771
701
論理演算子は基本的に真偽値を扱う演算子でAND(かつ)、OR(または)、NOT(否定)を表現できます。
@@ -1061,6 +991,91 @@ console.log(addPrefix("文字列")); // => "デフォルト:文字列"
1061
991
console.log(addPrefix("文字列", "カスタム:")); // => "カスタム:文字列"
1062
992
` ` `
1063
993
994
+ ## 代入演算子(` =` ) {#assignment- operator}
995
+
996
+ 代入演算子(` =` )は変数に対して値を代入します。
997
+ 代入演算子については「[変数と宣言](../ variables/ README .md )」の章も参照してください。
998
+
999
+ {{book .console }}
1000
+ ` ` ` js
1001
+ let x = 1;
1002
+ x = 42;
1003
+ console.log(x); // => 42
1004
+ ` ` `
1005
+
1006
+ また、代入演算子は二項演算子と組み合わせて利用できます。
1007
+ ` +=` 、` -=` 、` *=` 、` /=` 、` %=` 、` <<=` 、` >>=` 、` >>>=` 、` &=` 、` ^=` 、` |=` のように、演算した結果を代入できます。
1008
+
1009
+ {{book .console }}
1010
+ ` ` ` js
1011
+ let num = 1;
1012
+ num += 10; // num = num + 10; と同じ
1013
+ console.log(num); // => 11
1014
+ ` ` `
1015
+
1016
+ また、ES2021 から代入演算子と論理演算子の組み合わせもできるようになっています。
1017
+ ` &&=` 、` ||=` 、` ??=` のように、論理演算子の評価に基づいて代入できます。
1018
+
1019
+ {{book .console }}
1020
+ <!-- doctest: meta: { " ECMAScript" : 2021 } -->
1021
+ ` ` ` js
1022
+ // ` a` がtrueのときに、` a` へ` b` を代入する
1023
+ a &&= b;
1024
+ // ` a` がfalseのときに、` a` へ` b` を代入する
1025
+ a ||= b;
1026
+ // ` a` がnullishのときに` a` へ` b` を代入する
1027
+ a ??= b;
1028
+ ` ` `
1029
+
1030
+ ### [ES2015 ] 分割代入(Destructuring assignment) {#destructuring- assignment}
1031
+
1032
+ 今まで見てきた代入演算子は1 つの変数に値を代入するものでした。
1033
+ 分割代入を使うことで、配列やオブジェクトの値を複数の変数へ同時に代入できます。
1034
+ 分割代入は短縮記法のひとつでES2015 から導入された構文です。
1035
+
1036
+ 分割代入は、代入演算子(` =` )を使うのは同じですが、左辺のオペランドが配列リテラルやオブジェクトリテラルとなります。
1037
+
1038
+ 次のコードでは、右辺の配列の値を、左辺の配列リテラルの対応するインデックスに書かれた変数名へ代入します。
1039
+
1040
+ {{book .console }}
1041
+ ` ` ` js
1042
+ const array = [1, 2];
1043
+ // aには` array` の0番目の値、bには1番目の値が代入される
1044
+ const [a, b] = array;
1045
+ console.log(a); // => 1
1046
+ console.log(b); // => 2
1047
+ ` ` `
1048
+
1049
+ これは、次のように書いたのと同じ結果になります。
1050
+
1051
+ ` ` ` js
1052
+ const array = [1, 2];
1053
+ const a = array[0];
1054
+ const b = array[1];
1055
+ ` ` `
1056
+
1057
+ 同様にオブジェクトも分割代入に対応しています。
1058
+ オブジェクトの場合は、右辺のオブジェクトのプロパティ値を、左辺に対応するプロパティ名へ代入します。
1059
+
1060
+ {{book .console }}
1061
+ ` ` ` js
1062
+ const obj = {
1063
+ "key": "value"
1064
+ };
1065
+ // プロパティ名` key` の値を、変数` key` として定義する
1066
+ const { key } = obj;
1067
+ console.log(key); // => "value"
1068
+ ` ` `
1069
+
1070
+ これは、次のように書いたのと同じ結果になります。
1071
+
1072
+ ` ` ` js
1073
+ const obj = {
1074
+ "key": "value"
1075
+ };
1076
+ const key = obj.key;
1077
+ ` ` `
1078
+
1064
1079
## グループ化演算子(` (` と` )` ) {#group- operator}
1065
1080
1066
1081
グループ化演算子は複数の二項演算子が組み合わさった場合に、演算子の優先順位を明示できる演算子です。
0 commit comments