將自己在閱讀《javascript高級(jí)程序設(shè)計(jì)》一書(shū)的筆記記錄下來(lái)
第一章------第四章
第五章
5.6基本包裝類型
引用類型與基本包裝類型的主要區(qū)別就是對(duì)象的生存期族阅。
使用new操作符創(chuàng)建的引用類型的實(shí)例,會(huì)在代碼離開(kāi)當(dāng)前作用域之前一直存在膝捞,而自動(dòng)創(chuàng)建的基本包裝類型的對(duì)象坦刀,則只存在于一行代碼的執(zhí)行瞬間,然后被銷毀绑警。
var s1 = "some text";
s1.color = "red";
alert(s1.color); //代碼返回undefined
第二行代碼試圖為s1添加一個(gè)color屬性求泰,但是當(dāng)代碼執(zhí)行到第三行時(shí),第二行創(chuàng)建的string對(duì)象已經(jīng)被銷毀了计盒。所以當(dāng)調(diào)用s1實(shí)例時(shí)渴频,會(huì)返回undefined
需要注意使用new調(diào)用的函數(shù),會(huì)被轉(zhuǎn)換為所調(diào)用函數(shù)的類型
var value = "25";
var number = Number(value); //轉(zhuǎn)型函數(shù)
alert(typeof number); //"number"
直接調(diào)用同名的轉(zhuǎn)型函數(shù)北启,則不會(huì)被轉(zhuǎn)換
var value = "25"
var obj = new Number(value); //構(gòu)造函數(shù)
alert(typeof obj) //"object"
5.6.3 String類型
三個(gè)基于字符串創(chuàng)建新字符串的方法
- slice(a,b); a表示字符串開(kāi)始位置卜朗,b表示字符串截至位置
- substr(a,b); a表示字符串開(kāi)始位置,b表示要返回的字符個(gè)數(shù)
- substring(a,b); a表示字符串開(kāi)始位置咕村,b表示字符串截至位置
var stringValue = "hellow world";
alert(stringValue.slice(3)); //"lo world"
alert(stringValue.substr(3,7)); //"lo worl"
alert(stringValue.substring(3,7)); //"lo w"
如果傳入的a,b是負(fù)值
- slice(a,b); 將傳入的負(fù)值與字符串的長(zhǎng)度想加
- substr(a,b); 會(huì)將傳入的a加上字符串的長(zhǎng)度场钉,(b)轉(zhuǎn)換為0
- substring(a,b); 會(huì)將所有負(fù)值參數(shù)轉(zhuǎn)換為0 (*如果轉(zhuǎn)換后的值 a>b則變成(b,a))
var stringValue = "hello world";
alert(stringValue.slice(-3)); //"red" (11+-3=8)
alert(stringValur.substring(-3)); //"hello world"
alert(stringValue.substring(3,-1)); //"hel" 因?yàn)檗D(zhuǎn)換后3>0 所以變?yōu)椋?,3)