js:標準対象/包装対象
2793 ワード
一、JavaScriptの世界では、すべてが対象です.
しかし、あるオブジェクトは他のオブジェクトとは違っています.オブジェクトの種類を区別するために、typeofオペレータでオブジェクトの種類を取得します.常に文字列を返します.
二、包装対象
これらのタイプ以外にも、JavaScriptは包装対象を提供しています.Javaをよく知っている仲間はきっとintとIntegerという曖昧な関係をよく知っています.
number、bootleanとstringは包装対象があります.
★JavaScriptでは、文字列も区別します.stringタイプとその包装タイプ.
包装対象用new作成:
Number、Boolean、Stringを使っていますが、newを書かなかったらどうなりますか?
このとき、Number()、Boolean、String()は一般関数として扱い、どのタイプのデータをnumber、bollan、stringタイプに変換します.
1.どのオブジェクトにもToString()の方法がありますか?いいえ!nullとundefinedはありません!確かにこの二つの特殊な値は除外します.nullはまたobjectタイプを装っています.
2.もっと注意深いクラスメートは、number対象がtoString()SyntxErrorを呼び出すと指摘しています.
しかし、あるオブジェクトは他のオブジェクトとは違っています.オブジェクトの種類を区別するために、typeofオペレータでオブジェクトの種類を取得します.常に文字列を返します.
typeof 123; // 'number'
typeof NaN; // 'number'
typeof 'str'; // 'string'
typeof true; // 'boolean'
typeof undefined; // 'undefined'
typeof Math.abs; // 'function'
typeof null; // 'object'
typeof []; // 'object'
typeof {}; // 'object'
number、string、bollan、functionとundefinedは他のタイプとは違っています.【特に注意】nullのタイプはobjectであり、Arayのタイプもobjectであり、typeofを使えばnull、Arayと通常の意味でのobjectを区別できなくなります.二、包装対象
これらのタイプ以外にも、JavaScriptは包装対象を提供しています.Javaをよく知っている仲間はきっとintとIntegerという曖昧な関係をよく知っています.
number、bootleanとstringは包装対象があります.
★JavaScriptでは、文字列も区別します.stringタイプとその包装タイプ.
包装対象用new作成:
var n = new Number(123); // 123,
var b = new Boolean(true); // true,
var s = new String('str'); // 'str',
★包装対象が元の値とそっくりに見えますが、彼らのタイプはすでにobjectに変わりました.したがって、包装の対象と元の値は==比較的にfalseに戻ります.typeof new Number(123); // 'object'
new Number(123) === 123; // false
typeof new Boolean(true); // 'object'
new Boolean(true) === true; // false
typeof new String('str'); // 'object'
new String('str') === 'str'; // false
包装対象は絶対に使わないでください.特にstringタイプに向けて!!!Number、Boolean、Stringを使っていますが、newを書かなかったらどうなりますか?
このとき、Number()、Boolean、String()は一般関数として扱い、どのタイプのデータをnumber、bollan、stringタイプに変換します.
var n = Number('123'); // 123, parseInt() parseFloat()
typeof n; // 'number'
var b = Boolean('true'); // true
typeof b; // 'boolean'
var b2 = Boolean('false'); // true! 'false' true! !
var b3 = Boolean(''); // false
var s = String(123.45); // '123.45'
typeof s; // 'string'
★★★まとめてみると、このようないくつかの規則があります. 1. new Number()、new Boolean()、new String() ;
2. parseInt() parseFloat() number;
3. String() string, toString() ;
4. boolean , if (myVar) {...};
5.typeof number、boolean、string、function undefined;
6. Array Array.isArray(arr);
7. null myVar === null;
8. typeof window.myVar === 'undefined';
9. typeof myVar === 'undefined'。
その他の注意事項:1.どのオブジェクトにもToString()の方法がありますか?いいえ!nullとundefinedはありません!確かにこの二つの特殊な値は除外します.nullはまたobjectタイプを装っています.
2.もっと注意深いクラスメートは、number対象がtoString()SyntxErrorを呼び出すと指摘しています.
123.toString(); // SyntaxError
このような場合は、特別に処理します.123..toString(); // '123', !
(123).toString(); // '123'