91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript標準對象知識點整理

發布時間:2021-08-18 10:19:33 來源:億速云 閱讀:140 作者:chen 欄目:web開發

本篇內容介紹了“JavaScript標準對象知識點整理”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

在JavaScript的世界里,一切都是對象。

但是某些對象還是和其他對象不太一樣。為了區分對象的類型,我們用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、boolean、functionundefined有別于其他類型。特別注意null的類型是object,Array的類型也是object,如果我們用typeof將無法區分出null、Array和通常意義上的object——{}。

包裝對象

除了這些類型外,JavaScript還提供了包裝對象,熟悉Java的小伙伴肯定很清楚int和Integer這種曖昧關系。
number、boolean和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、BooleanString時,沒有寫new會發生什么情況?
此時,Number()、BooleanString()被當做普通函數,把任何類型的數據轉換為number、booleanstring類型(注意不是其包裝類型):

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'

是不是感覺頭大了?這就是JavaScript特有的催眠魅力!

總結一下,有這么幾條規則需要遵守:

  • ?不要使用new Number()、new Boolean()、new String()創建包裝對象;

  • ?用parseInt()parseFloat()來轉換任意類型到number

  • ?用String()來轉換任意類型到string,或者直接調用某個對象的toString()方法;

  • ?通常不必把任意類型轉換為boolean再判斷,因為可以直接寫if (myVar) {...};

  • ?typeof操作符可以判斷出number、boolean、string、function和undefined

  • ?判斷Array要使用Array.isArray(arr);

  • ?判斷null請使用myVar === null

  • ?判斷某個全局變量是否存在用typeof window.myVar === 'undefined';

  • ?函數內部判斷某個變量是否存在用typeof myVar === 'undefined'。
     

最后有細心的同學指出,任何對象都有toString()方法嗎?nullundefined就沒有!確實如此,這兩個特殊值要除外,雖然null還偽裝成了object類型。

更細心的同學指出,number對象調用toString()報SyntaxError:

123.toString(); // SyntaxError

遇到這種情況,要特殊處理一下:

123..toString(); // '123', 注意是兩個點!
(123).toString(); // '123'

“JavaScript標準對象知識點整理”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

陈巴尔虎旗| 小金县| 镇巴县| 台南县| 屯留县| 迁安市| 察雅县| 成武县| 宁陵县| 二连浩特市| 鄂温| 潜江市| 宁蒗| 阜宁县| 宜州市| 武宁县| 沅陵县| 渭源县| 徐水县| 莱芜市| 大理市| 本溪| 萨迦县| 日土县| 永川市| 台山市| 南阳市| 桓台县| 垣曲县| 永昌县| 阿合奇县| 白朗县| 莆田市| 涿州市| 类乌齐县| 即墨市| 新疆| 隆回县| 岳普湖县| 镇远县| 罗城|