前端小知识点(2):普通字符串和new String有什么区别
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                前端小知识点(2):普通字符串和new String有什么区别
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                目錄
一、其實(shí)不僅字符串
二、那么到底為什么?
三、代碼案例
四、運(yùn)行結(jié)果
一、其實(shí)不僅字符串
var str = 'abc';
typeof str ===> string //他不是對(duì)象,可以有方法或者屬性
var num = 123; ?//他不是對(duì)象,可以有方法或者屬性
typeof num ===> number ?//他不是對(duì)象,可以有方法或者屬性
當(dāng)然還有很有很多...
我們知道,String,Number,在JS中是基本類型
二、那么到底為什么?
引言:基本類型是存儲(chǔ)在棧(stack)內(nèi)存中的,而引用類型,對(duì)象(object)是存儲(chǔ)在堆中的。但是為什么棧內(nèi)存的可以也可以有方法和屬性呢?
console.log(str.indexOf === String.prototype.indexOf) //true
str 又 不屬于String 卻擁有 String 的方法?????
因?yàn)?這是JS中的設(shè)計(jì)。
原始資料類型的方法與屬性是"借"來的
所以原始資料類型是可以向 new String() 或者 new Number() 借來所有的方法。但是自己本身卻沒有屬性和方法。
三、代碼案例
var str1 = '123'; var str2 = new String('123');console.log( typeof str1 ); //string console.log( typeof str2 ); //objectconsole.log( str1.slice(-1) ); console.log( str2.slice(-1) );console.log(str1.indexOf === String.prototype.indexOf);var num1 = 123; var num2 = new Number(123);四、運(yùn)行結(jié)果
?
總結(jié)
以上是生活随笔為你收集整理的前端小知识点(2):普通字符串和new String有什么区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 【MySQL】redo log ---
- 下一篇: 利用Sen2cor工具对哨兵2影像进行大
