js基本包装类型和引用类型
回顧
1.什么是基本類型?
共5個(gè)。boolean,string,number,null,undefined.
?
2.什么是引用類型?
引用類型的值是對(duì)象,保存在堆內(nèi)存中;
引用類型的變量實(shí)際上是一個(gè)指針,它保存在棧中,指向堆內(nèi)存中的對(duì)象;
包括:object? array? date? regexp? function
?
3.什么是基本包裝類型?
既是基本,也是引用,所以叫做基本引用類型。
基本包裝類型是對(duì)基本數(shù)據(jù)類型的封裝,封裝后即具有基本類型的功能,也有各自的特殊行為(方法)
?
4.和基本類型有什么區(qū)別?
區(qū)別在于對(duì)象的'生存期'。基本包裝類型只存在于代碼的執(zhí)行瞬間,然后立即被銷毀。
?
Boolean類型:
typeof對(duì)基本類型返回“boolean”,而對(duì)引用類型返回“object”。
其次,由于Boolean對(duì)象是Boolean類型的實(shí)例,所以使用instanceof操作符測(cè)試Boolean對(duì)象會(huì)返回true,而測(cè)試基本類型的布爾值則返回false。
建議永遠(yuǎn)不要使用Boolean對(duì)象!
?
Number類型:
創(chuàng)建number對(duì)象,可以在調(diào)用Number構(gòu)造函數(shù)時(shí)向其中傳遞相應(yīng)的數(shù)值:
var numberObject = new Number(10);Number類型還提供一些用于將數(shù)值格式化為字符串的方法:toFixed()方法
1.toFixed()方法會(huì)按照指定的小數(shù)位返回?cái)?shù)值的字符串表示:(即以0填補(bǔ)必要的小數(shù)位)
var num=10; alert(num.toFixed(2)); //"10.00
2.toExponential(),該方法返回以指數(shù)表示法(e表示法)表示的數(shù)值的字符串形式。也可以接收一個(gè)參數(shù),指定輸出結(jié)果中的小數(shù)位數(shù)。
?
3.toPrecision()方法
可能會(huì)返回固定大小格式,也可能返回指數(shù)(exponential)格式;具體規(guī)則是看哪種格式合適。可以接收一個(gè)參數(shù),表示數(shù)值的所有數(shù)字的位數(shù)(不包括指數(shù)部分):
var num = 99; alert(num.toPrecision(1));//"1e 2" alert(num.toPrecision(2));//"99" alert(num.toPrecision(3));//"99.0"注意:typeof 測(cè)試基本類型,返回number;測(cè)試number對(duì)象時(shí),返回“object”。number對(duì)象是number類型的實(shí)例,而基本類型的數(shù)值則不是。
?
String()方法:
var stringObject = new String("hello world");//length屬性
var stringValue = "hello world";
alert(stringValue.length); //"11"
1.字符方法:
兩個(gè):charAt()和charCodeAt()
//charAt()方法以單字符字符串的形式返回給定位置的那個(gè)字符var stringValue = "hello world"; alert(stringValue.charAt(1)); //"e" //【字符編碼】形式返回給定位置的字符
var stringValue = "hello world"; alert(stringValue.charCodeAt(1)); //"101"
2.字符串操作方法
concat():拼接字符串,返回拼接后的新字符串
var stringValue = "hello "; var result = stringValue.concat("world"); alert(result); //hello world alert(stringValue); //hello //可以接收任意多個(gè)參數(shù),即拼接任意多個(gè)字符串var stringValue = "hello "; var result = stringValue.concat("world","!");alert(result); alert(stringValue);
str(),substring(),substr():
注意:substring() 不接受負(fù)的參數(shù);
? substr()方法、slice()方法中的參數(shù)如果是負(fù)數(shù),那么它規(guī)定的是從數(shù)組尾部開(kāi)始算起的元素。
var stringValue = "hello world"; alert(stringValue.slice(3,7)); //"lo w" alert(stringValue.substring(3,7)); //"lo w" alert(stringValue.substr(3,7)); //"lo world" var stringValue = "hello world"; alert(stringValue.slice(3,-4)); //"lo w" alert(stringValue.substring(3,-4)); //"hel" alert(stringValue.substr(3,-4)); //" "1.slice()方法會(huì)把第二個(gè)負(fù)值的參數(shù)轉(zhuǎn)換為“字符串長(zhǎng)度 負(fù)值”(本例中“hello world”共11個(gè)字符(含括號(hào)),所以是11-4=7),也就是說(shuō)slice(3,-4)==> slice(3,7)==>"lo w"
2.substring()方法會(huì)將負(fù)值轉(zhuǎn)換為0,substring(3,-4)==>substring(3,0),又因?yàn)檫@個(gè)方法會(huì)將較小的值作為開(kāi)始位置、較大的值作為結(jié)束位置,所以==>substring(0,3)==>取前3個(gè)字符==>"hel"
3.substr()方法也將第二個(gè)參數(shù)轉(zhuǎn)換為0。而substr()方法的第二個(gè)參數(shù)本身的含義是 ”返回的字符個(gè)數(shù)”,當(dāng)值為0時(shí),即返回0個(gè)字符。所以第二個(gè)參數(shù)為負(fù)值時(shí),該方法返回空字符串。
更多專業(yè)前端知識(shí),請(qǐng)上 【猿2048】www.mk2048.com
總結(jié)
以上是生活随笔為你收集整理的js基本包装类型和引用类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: EventUtil.addHandler
- 下一篇: 小程序-冒泡事件