最低限の知識一応あるけど、復習も兼ねて書いてみることにするの巻その②
型変換
演算子と関数は自動的に値を正しい型に変換する
ex)alert
は表示するために値を文字列に変換する
- 文字列変換
-
String(vakue)
関数も使える
-
let value = true;
alert(typeof value); // boolean
value = String(value); // 今、値は文字列の "true"
alert(typeof value); // string
- 数値変換
- 数値変換は数学的関数や表現の中で自動的に起こる
- 明示的に value を変換するために Number(value) を使うことができる
- 文字列が有効な数値でない場合、変換の結果は
NaN
になる
alert( "6" / "2" ); // 3, 文字列は数値に変換されます
-----------------
let str = "123";
alert(typeof str); // string
let num = Number(str); // 数値の 123 になります
alert(typeof num); // number
-----------------
et age = Number("an arbitrary string instead of a number");
alert(age); // NaN, 変換失敗
変換ルール
値 | 変換後 |
---|---|
undefined | NaN |
null | 0 |
trueとfalse | 1 と 0 |
string | 最初と最後のスペースは取り除かれる。残った文字列が空の場合は結果は0。エラーの場合はNaN。 |
- Boolean変換
- 論理演算で起こる
-
Boolean(value)
関数を呼ぶことで手動で実行することもできる
変換ルール
値 | 変換後 | 備考 |
---|---|---|
0,空文字,ull,undefined,NaN | false | 直感的に'空'な値はfalseになる |
その他 | true |
alert( Boolean(1) ); // true
alert( Boolean(0) ); // false
alert( Boolean("hello") ); // true
alert( Boolean("") ); // false
⚠️注意点⚠️
ゼロの文字列 "0"
は true
!
他の言語では"0"
をfalseと扱う言語もあるが、Javascriptは空文字ではない場合は全てtrue
演算子(基本的なところは省略。知り得る知識で他言語と差分がある箇所を書いていく。)
- 文字列連結
- (「+」でつなぐ)
- 一方のオペランドが文字列の場合、他のオペランドも文字列に変換される(「+」以外は数値演算になる)
- オペランドが数値でない場合は数値に変換(
Number(value)
と同じだが、より短い表現)
let s = "my" + "string";
alert(s); // mystring
----------------
alert( '1' + 2 ); // "12"
alert( 2 + '1' ); // "21"
----------------
// 数値の場合、何の影響もありません
let x = 1;
alert( +x ); // 1
let y = -2;
alert( +y ); // -2
// 非数値を数値に変換します
alert( +true ); // 1
alert( +"" ); // 0
比較
下記ページ参照しました
https://ja.javascript.info/comparison
(厳密比較じゃないとtrueになっちゃう理由がわかる)
今日も今日とて疲労。おわりまる。