//
/*
〜*/
var
let
var
の改良版const
_
(アンダースコア)、$
(ダラー)、数字Boolean
(真偽値):trueまたはfalseNumber
(数値)BigInt
(巨大な整数)String
(文字列)undefined
:値が未定義null
:意図的な「値なし」Symbol
(シンボル):一意で不変な値(一度作成したらその値自体を変更できない)NaN
:
NaN
になるNaN !== NaN
が真(自分自身と等しくない).isNaN
メソッド:NaN
かどうかの判定object
null
はobject
false
とみなされる値
false
0
""
(空文字)null
undefined
NaN
true
false
0b
または0B
の後ろ0o
または0O
の後ろ0x
または0X
の後ろ
b. 浮動小数点数リテラル.
(ドット)を含んだ数値e
またはE
を含んだ数値
e
(exoinent)の後に指数部の値を書く2e3=2*10^3
Number.MAX_SAFE_INTEGER
(倍精度浮動小数で正確に扱える最大値、2^53-1)より大きな整数を扱えるn
をつける_
を追加できる(例:1_000_000
)
" "
, ' '
(両者は全く同じ意味)
b. テンプレートリテラル:\
``
${変数名}
で変数の値を埋め込めるnull
値を代入することで値がないことを表現undefined
はリテラルではなくグローバル変数なので、同じ名前のローカル変数を宣言できるconst obj = {
"key": "value"
}
Symbol
プロパティ名:オブジェクトが持つキーのこと
obj
のkey
プロパティの参照
a. ドット記法:obj.key
(プロパティ名が識別子である必要がある)
b. ブラケット記法:obj["key"]
[]
でArrayオブジェクトを作成array[index]
で参照/
で正規表現のパターン文字列を囲むconst str = new String("文字列")
+
+
-
*
/
(0で除算するとinfinity
)%
**
(Math.pow
メソッドも同じ動作をする)+
+1
, +"1"
)NaN
に変換-
-"1"
)NaN
になるため、文字列から数値の変換に使うべきではない++
num++
(+1する前の値を返す)++num
(+1した後の値を返す)--
num--
(-1する前の値を返す)--num
(-1した後の値を返す)===
true
を返すtrue
を返す!==
true
を返す==
===
を使い、異なる型を比較するときは明示的に型を合わせるべきnull
とundefined
の比較は==
を使う!=
!==
を使い、異なる型を比較するときは明示的に型を合わせるべき>
>=
<
<=
&
|
^
~
<<
>>
>>>
>>
と異なり、0のビットを左から詰める=
const array = [1, 2];
const [a, b] = array; //a=1, b=2
const obj = {"key": "value"};
const {key} = obj; //key = "key"
&&
true
ならば右辺の評価結果を返すfalse
ならばそのまま左辺の値を返す(短絡評価)||
false
ならば右辺の評価結果を返すtrue
ならばそのまま左辺の値を返す(短絡評価)!
??
nullish
であるならば、右辺の評価結果を返すnullish
:評価結果がnull
またはundefined
となる値?
, :
条件式 ? Trueのとき処理する式 : Falseのとき処理する式
(
, )
,
,
で区切った式を左から順に評価し、最後の式の評価結果を返すBoolean
コンストラクタ関数(Boolean(値)
)によって変換false
へ変換されるString
コンストラクタ関数(String(値)
)によって変換join
メソッド、オブジェクトにはJSON.stringfy
静的メソッドなどがより適切+
で繋いでも文字列にはならず、エラーになるString
コンストラクタ関数により明示的に文字列化するNumber
コンストラクタ関数(Number(値)
)によって変換Number.parseInt(文字列, 基数)
, Number.parseFloat(文字列)
:
NaN
を返すため、NaN
になった場合の処理を書く必要がある