PoiemaWeb-タイプ変換と迅速な評価


1.変換タイプ


JavaScriptのすべての値にタイプがあります.値のタイプは、開発者が意図的に他のタイプに変換することができます.あるいは、JavaScriptエンジンでサイレント自動変換を行うこともできます.開発者が意図的に値を変換するタイプは、明示的なタイプ変換(Explicit Construction)またはタイプ鋳造(Type Casting)と呼ばれます.
var x = 10;
//명시적 타입변환
var str = x.toString();
ダイナミックタイプのjavascriptは、開発者の意図に関係なくjavascriptエンジンによって黙々とタイプが自動的に変換されます.これを暗黙タイプ変換(Implicit強制)またはタイプ強制変換(Type強制)と呼ぶ.
var x = 10;
var str = x + ''; //암묵적 타입변환

2.デフォルトタイプの変換


JavaScriptエンジンは、表現を評価する際にコンテキスト(Context)を考慮し、デフォルトでタイプ変換を実行します.
式を評価すると、コンテキストに合致しない場合があります.このときjavascriptは、エラーを最小限に抑えるために暗黙的なタイプ変換によって式を評価します.

3.明示的なタイプ変換


開発者の意図により,タイプを明確に変更する方法は多様である.Rapperオブジェクトを作成するためのRapperオブジェクト作成者関数をnew演算子の有無で呼び出す方法と,JavaScriptで提供される構築方法を用いる方法と,前述した暗黙型変換を利用する方法がある.

3.1文字列タイプへの変換

  • 新しい演算子を使用せずにStringコンストラクタを呼び出す方法
  • Object.prototype.TOStringメソッドの使い方
  • 文字列接続演算子の使い方
  • 3.2数値タイプへの変換

  • 新しい演算子なしでデジタルジェネレータ関数を呼び出す方法
  • ParseInt、ParseFloat関数の使い方(文字列のみ変換可能)
  • 単項接続演算子の利用方法ex)+'-1"=1,+'0"][0
  • 算術演算子を用いる方法ex)「0」*1=0,「-1」*1=1
  • 3.3ブール型に変換

  • 新しい演算子なしでBooleanコンストラクタを呼び出す方法
  • ! 否定論理演算子を2回使用する方法
  • 4.迅速な評価

    'Cat' && 'Dog' //'Dog'
    論理乗算子は、2つの被演算子がtrueとして計算されたときにtrueを返します.
    論理乗算子&&は、論理演算結果を決定する2番目の被演算子の評価結果、すなわち文字列「Dog」を直接返します.
    'Cat' || 'Dog' //'Cat'
    論理演算子|2つの被演算子のうち、1つだけがtrueである場合にtrueを返します.
    論理演算子|は、論理演算結果を決定する最初の被演算子の評価結果である「Cat」を返します.
    論理積演算子&&および論理連結演算子|は、論理評価を決定する演算子の値を返します.これをクイック評価と呼びます.ショートカット評価は、次のルールに従います.
    ショートカット評価式の評価結果はtrue|anythingtrue&anythingfalse&anythingfalse&anythingfalse&anythingfalse
    評価の短縮は、次の場合に役立ちます.
  • 確認対象がnullでproperty参照の場合
  • var elem = null;
    console.log(elem.value); //TypeError
    console.log(elem && elem.value)// null
    オブジェクトが空の場合、参照オブジェクトのプロパティによってタイプエラーが発生します.ショートカット評価を使用してもエラーは発生しません.
  • 関数の引数を初期化する場合
  • function getStringLength(str){
    	str = str || '';
    	return str.length;
    }
    関数の呼び出し時にパラメータが渡されない場合、パラメータは未定義です.この場合、ショートカットを使用してパラメータのデフォルト値を設定すると、未定義によるエラーを防止できます.