JavaScript筆記の二:基本タイプ(上)

2711 ワード

前言
JavaScriptの高い工程に基づいて紅皮書の総括を設計して、後でひっくり返して強固にすることに便利です.ECMAScript 5に基づいて、部分ES 6をドープすることがあります.
JavaScriptの基本タイプ(ES 5ベース)
先端はJSを見て、JSは基礎を見ます.基礎をしっかり固めてこそ、次々と出現する枠組みに対処できる.じゃ、無駄話はやめて、GO.ES 5では、JavaScriptには5種類の基本タイプがあり、それぞれUnidefined、Null、Boolean、Number、Stringとなっています.ps:ES 6はSymbol基本タイプを追加しました.興味があれば自分で検索して勉強します.
Udefined
Unidefinedベースタイプは、一つの値だけundefinedで、文字通り「未定義」です.変数を定義して値を与えない場合、この変数のタイプはundefinedです.
var message;
console.log(typeof message); //undefined
興味深いことに、私たちは存在しない変数を検出すると、undefinedに戻ります.
//var age;     
console.log(typeof age);  //undefined
この二つは全く違っています.直接に結果を印刷してみてください.
var message;
//var age;
console.log(message);
console.log(age);
その結果、1行目はundefined、2行目はエラーとなりました.もちろん、私たちは使う時にundefinedタイプを明示的に宣言する必要はありません.
Null
Nullタイプは、一つの値しかありません.nullです.ここも面白いです.typeofオペレータでnullを検出します.
var message = null;
console.log(typeof null); //object
typeofオペレータがnullをobjectタイプとして検出しましたか?困っています.有木ありますか?私は前後で何冊かの本を読みましたが、nullは空の指針なので、ある人はObjectの原型がnullを指していると言いますが、本当の原因は設計ミスです.でももう直せないです.ですから、あまりにもこだわる必要はありません.もしnullタイプを検査したいなら、このようにしてもいいです.
if(ele === null){
    //your code
}
ここでは一つの点を説明します.undefinedはnullから派生していますので、下のコードはtrueに戻ります.
     console.log(undefined == null); //true
==等しいオペレータはタイプを変換するので、ここでは===フルオペレータを使用することを強く推奨します.nullタイプでよく使われるシーンは主に以下を含む.
  • 変数は将来保存対象用に用意され、明示的にnull
  • と定義される.
  • 手動で変数/オブジェクト属性の参照を解除し、メモリ管理を最適化する
  • .
    ボロア
    ブールタイプ、2つの値はそれぞれtrueとfalseです.ここで注意したいのは、trueは必ずしも1ではなく、falseも必ずしも0ではありません.変数宣言ブール値が明示的に与えられます.
    var isStudent = true;
    var isMan = false;
    
    JSでは、ほとんどのタイプの値はブール値に変換され、表示遷移もあれば、暗黙的な変換も存在する.ここでは以下のタイプの値がfalseに変換されることを覚えておきたいです.
    undefined,null,""(    ),0,NaN
    
    これ以外の値はtrueに変換されます.
    ps:すべてのオブジェクトはtrueに変換されます.
    var obj = {};
    console.log(Boolean(obj));  //true
    
    明示的な変換
  • Boolean()変換関数JSは、Boolean()に値を変換するための変換関数を提供する.
  • var message = 123;
    console.log(Boolean(message));  //true
    
  • !論理はオペレータではありませんオペレータはBoolean()関数の操作をシミュレートして、値をブール値で反転します.値の真のブール値を返します.これはBoolean()に相当します.もっと一般的です.
  • var message = "string";
    console.log(!message);  //false
    console.log(!!message); //true
    
    暗黙的な変換
    私たちの最も一般的なif..elseは、文に暗黙的な変換があると判断します.下記のコードを考慮します.
    var message = "hello world";
    if(message){
          console.log("message is exist");
    }
    else{
          console.log("message isn't exist");
    }
    
    if後の括弧内は暗黙的に変換され、メッセージがBoolean値に変換されると、else後の文が実行されます.
    NumberタイプとSteringタイプは二節に分けてまとめます.まずこれにします.