js的基本包装类型
基本包裝類型(包裝對象):
先看下以下代碼:
var s1 = "helloworld"; var s2 = s1.substr(4);上面我們說到字符串是基本數據類型,不應該有方法,那為什么這里s1可以調用substr()呢?
通過翻閱js權威指南第3.6章節和高級程序設計第5.6章節我們得知,ECMAScript還提供了三個特殊的引用類型Boolean,String,Number.我們稱這三個特殊的引用類型為基本包裝類型,也叫包裝對象.
也就是說當讀取string,boolean和number這三個基本數據類型的時候,后臺就會創建一個對應的基本包裝類型對象,從而讓我們能夠調用一些方法來操作這些數據.
所以當第二行代碼訪問s1的時候,后臺會自動完成下列操作:
創建String類型的一個實例;// var s1 = new String("helloworld");
在實例上調用指定方法;// var s2 = s1.substr(4);
銷毀這個實例;// s1 = null;
正因為有第三步這個銷毀的動作,所以你應該能夠明白為什么基本數據類型不可以添加屬性和方法,這也正是基本裝包類型和引用類型主要區別:對象的生存期.
使用new操作符創建的引用類型的實例,在執行流離開當前作用域之前都是一直保存在內存中.而自動創建的基本包裝類型的對象,則只存在于一行代碼的執行瞬間,然后立即被銷毀
?
轉載于:https://www.cnblogs.com/-rainbow-/p/9406704.html
總結
- 上一篇: hr面试高频问题回答思路总结
- 下一篇: lambda创建线程