[モダンJavaScript整理]タイプ変換

4587 ワード

タイプ変換


開発者が意図的に値を変換するタイプを明示的タイプ変換またはタイプ鋳造と呼び、開発者の意図を考慮せずに式を評価する過程でJavaScriptエンジンによって自動的に暗黙的タイプ変換を行うことを暗黙的タイプ変換またはタイプ強制変換と呼ぶ.

明示的なタイプ遷移の例

let num = 10;
let str = x.toString();

console.log(typeof str) // string;

隠しタイプ変換の例

let num = 10;
let str = num + ' ';

console.log(typeof str) // string;
タイプ遷移は、既存の元の値を直接変更しません.
既存の元の値を使用して、他のタイプの新しい元の値を作成します.

隠しタイプ変換


Javascriptエンジンが式を評価する場合、開発者の意図にかかわらず、コードコンテキストを考慮し、黙ってデータ型を強制的に変換します.
'10' + 2 // -> '102'
5 * '10' // -> 50
!0 // -> true
文字列、数値、ブールなどの元のタイプの1つにタイプを自動的に変換します.

1)文字列タイプに変換

1 + '2' // -> '12'
`1 + 1 = ${1 + 1}`
  • 演算子は、少なくとも1つの被演算子が文字列であるため、文字列接続演算子として機能する
  • 文字列接続演算子は、文字列値を作成する役割を果たすため、文字列タイプによってデフォルトタイプ
  • に変換される.
  • テンプレートに式を挿入し、式の計算結果を文字列タイプ
  • に変換します.

    2)数値タイプへの変換

    1 * '2' // -> 2
    1 - '1' // -> 0
    1 / 'one' // -> NaN
    '1' > 0 // true
    +'1' // 1
    +null // -> 0
    +undefined // -> NaN
  • 算術演算子のすべての被演算子は、コードコンテキストにおいてデジタルタイプ
  • として認識する.
  • 比較演算子は、すべての被演算子を数値タイプ
  • として認識する.
  • 単項演算子はタイプを
  • に変換し、被演算子が数値タイプの値でない場合、数値タイプの値に変換します.
    空の文字列(")、空の配列([])、null、falseを0、trueを1に変換します.
    オブジェクトと空でない配列;UndefinedはNANに変換されていません

    3)ブール型に変換