「JavaScript/演算子」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎算術演算子: 出典を補う
Ef3 (トーク | 投稿記録)
→‎加算と暗黙の型変換: 加算と暗黙の型変換
336 行
 
の様になります。興味深い挙動ですが'''文字列を数値に変換する方法'''としては妥当とは言えません。
 
=== 加算と暗黙の型変換 ===
加算と暗黙の型変換の結果を表にしました。
 
<syntaxhighlight lang="javascript">
const ary = [undefined, null, false, true, 0, 1, "", "1", [], [2]]
const json = ary.map(x => x === undefined ? "undefined" : JSON.stringify(x))
let s = ""
s += `{| class="wikitable"
|+ 加算と暗黙の型変換
! ${["左辺\右辺",...json].join("!!")}
`
for (const y of ary) {
s += `|-
! ${y === undefined ? "undefined" : JSON.stringify(y)}
| ${ary.map(x => `${y + x}:${typeof(y + x)}` ).join("||")}
`
}
s += `|}`
console.log(s)
</syntaxhighlight>
 
{| class="wikitable"
|+ 加算と暗黙の型変換
! 左辺\右辺!!undefined!!null!!false!!true!!0!!1!!""!!"1"!![]!![2]
|-
! undefined
| NaN:number||NaN:number||NaN:number||NaN:number||NaN:number||NaN:number||undefined:string||undefined1:string||undefined:string||undefined2:string
|-
! null
| NaN:number||0:number||0:number||1:number||0:number||1:number||null:string||null1:string||null:string||null2:string
|-
! false
| NaN:number||0:number||0:number||1:number||0:number||1:number||false:string||false1:string||false:string||false2:string
|-
! true
| NaN:number||1:number||1:number||2:number||1:number||2:number||true:string||true1:string||true:string||true2:string
|-
! 0
| NaN:number||0:number||0:number||1:number||0:number||1:number||0:string||01:string||0:string||02:string
|-
! 1
| NaN:number||1:number||1:number||2:number||1:number||2:number||1:string||11:string||1:string||12:string
|-
! ""
| undefined:string||null:string||false:string||true:string||0:string||1:string||:string||1:string||:string||2:string
|-
! "1"
| 1undefined:string||1null:string||1false:string||1true:string||10:string||11:string||1:string||11:string||1:string||12:string
|-
! []
| undefined:string||null:string||false:string||true:string||0:string||1:string||:string||1:string||:string||2:string
|-
! [2]
| 2undefined:string||2null:string||2false:string||2true:string||20:string||21:string||2:string||21:string||2:string||22:string
|}
この表は、二項演算子(+)と様々な値の組み合わせについて見てみました。
 
if文の条件式などのブーリアンコンテキストでの真理値への変換や、単項+の数値への変換は、また別の規則になります。
 
== 代入演算子 ==