亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript引用類型之基本包裝類型實例分析【Boolean、Number和String】

2019-11-19 13:18:11
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript引用類型之基本包裝類型。分享給大家供大家參考,具體如下:

為了操作基本類型值,ECDMAScript提供了3個特殊的引用類型――基本包裝類型Boolean、NumberString。每當讀取一個基本類型值時,后臺會創建一個對應的基本包裝類型的對象。

var str = "Hello world";var substr = str.substring();

等價于

var str = new String("Hello world");//創建String類型的實例var substr = str.substring();//在實例上調用substring()方法str = null;//銷毀實例

基本包裝類型是特殊的引用類型,引用類型與基本包裝類型的區別如下:

(1)對象的生存期

使用new操作符創建的引用類型的實例,在執行流離開當前作用域之前一直存在于內存中,而自動創建的基本包裝類型的對象,只存在于代碼執行瞬間,然后立即被銷毀,也就是說,不能在運行時為基本包裝類型添加屬性和方法。

var str1 = "Hello world";var str2 = new String("Hello World");str1.life = 20;str2.life = 20;alert(str1.life);//undefinedalert(str2.life);//20

(2)instanceof操作符測試結果

使用instanceof操作符測試基本包裝類型實例會返回true,測試基本類型值會返回false。

var str1 = "Hello World";var str2 = new String("Hello world");alert(str1 instanceof String);//falsealert(str2 instanceof String);//true

可以顯式地調用Boolean、Number、String來創建基本包裝類型的對象,但盡可能不要這樣做,因為這樣不易區分是在處理基本類型還是引用類型。

Object構造函數會根據傳入值的類型返回相應基本包裝類型的實例。

var str = new String("Hello world");alert(str instanceof String);//truevar num = new Number(16);alert(num instanceof Number);//truevar bool = new Boolean(true);alert(bool instanceof Boolean);//true

對基本包裝類型的實例調用typeOf()方法會返回"Object",實例變量中保存的是基本類型值。

var str = new String("Hello world");alert(typeof str);//objectvar num = new Number(16);alert(typeof num);//objectvar boolean = new Boolean(true);alert(typeof boolean);//object

使用new操作符調用基本包裝類型的構造函數,與直接調用同名的轉型函數是不同的,變量中保存的是基本包裝類型的實例。

var str = String("Hello world");alert(typeof str);//stringvar num = Number(16);alert(typeof num);//numbervar bool = Boolean(true);alert(typeof bool);//boolean

所有基本包裝類型的對象在轉換為布爾類型時值都是true。

var boolean1 = new Boolean(false);alert(boolean1);//falsealert(boolean1 && true);//truevar boolean2 = new Boolean(0);alert(boolean2);//falsealert(boolean2 && true);//truevar boolean3 = new Boolean("");alert(boolean3);//falsealert(boolean3 && true);//true

1、Boolean類型

var boolean = new Boolean(true);

Boolean類型的實例重寫了valueOf()方法,返回對應的基本類型值true和false;重寫了toString()方法,返回字符串"true"和"false"。

2、Number類型

var num = new Number(16);

Number類型也重寫了繼承的valueOf()、toString()、toLocaleString()方法,重寫后的valueOf()方法返回對應的基本類型值,另外兩個方法返回對應的字符串??梢詾閠oString()方法傳遞一個表示基數的參數。

除了繼承的方法外,Number還提供了將數值格式化為字符串的方法:

(1)toFixed()方法:傳入的參數為小數位數,返回數值的字符串表示。

(2)toExponential()方法:傳入的參數為小數位數,返回以指數表示法表示的數值的字符串形式。

(3)toPrecision()方法:傳入的參數為數值的所有數組位數,不包含指數部分,返回指定格式的字符串表示。

3、String類型

var str = new String("Hello world");

String類型繼承的valueOf()toString()、toLocaleString()方法返回對象所表示的字符串值。

(1)String類型實例的屬性。

length屬性:表示字符串包含的字符個數。

(2)String類型實例的方法。

---字符方法

不會修改字符串本身的值,只是返回子字符串,對原始字符串沒有影響。

1)charAt()方法:傳入的參數為基于0的字符位置,返回給定位置的字符。

2)charCodeAt()方法:傳入的參數為基于0的字符位置,返回給定位置的字符編碼。

---字符串操作方法

1)concat()方法:傳入的參數為任意多個字符串,返回拼接得到的字符串。

2)substr()、slice()、substring()方法:三個基于子字符串創建新字符串的方法,傳入一或兩個參數,返回子字符串。第一個參數指定子字符串的開始位置,第二個參數可選,slice()substring()的第二個參數指定子字符串的結束位置,substr()的第二個參數指定子字符串的長度。當傳入的參數是負數時,slice()方法會將負值與字符串長度相加,substr()方法將第一個負值加上字符串長度,而第二個負值轉換為0,substring()方法將所有負值都轉換為0。

---字符串位置方法

搜索給定的子字符串,返回子字符串的位置,未搜索到則返回-1。第一個參數指定搜索的子字符串,第二個參數可選,指定搜索開始的位置。---

1)indexOf()方法:從頭開始向后搜索。

2)lastIndexOf()方法:從后開始向前搜索。

---trim()方法

創建一個字符串的副本,刪除前綴和后綴的空格,返回新字符串,原始字符串不變。

---字符串大小寫轉換方法

1)toLowerCase()方法:通用的小寫轉換方法。

2)toUpperCase()方法:通用的大寫轉換方法。

3)toLocaleLowerCase()方法:針對特定地區的小寫轉換方法。

4)toLocaleUpperCase()方法:針對特定地區的大寫轉換方法。

---字符串模式匹配方法

1)match()方法:在字符串上調用match()方法,與在RegExp實例上調用exec()方法相同。接收1個參數――正則表達式或RegExp對象。返回一個數組,數組的第一項是與整個模式匹配的字符串,之后的每一項是與各個子模式匹配的字符串。

2)search()方法:從頭開始向后查找。接收1個參數――正則表達式或RegExp對象。返回第一個匹配項的索引,未找到匹配結果則返回-1。

3)replace()方法:替換字符串。接收2個參數――第一個參數是一個正則表達式或RegExp對象或字符串(字符串不會被轉換為正則表達式),第二個參數是一個字符串或函數。若第一個參數是字符串,則只會替換第一個子字符串,若想替換所以子字符串,需要使用帶有g標志的RegExp對象。

a、第二個參數為字符串時,使用特殊的字符序列,將正則表達式操作得到的值插入到結果字符串中。

特殊的字符序列 替換文本
$$ $
$& 匹配整個模式的子字符串
$' 匹配的子字符串之前的子字符串
$` 匹配的子字符串之后的子字符串
$n 匹配第n個子模式的子字符串,n等于0-9.若正則表達式中沒有定義子模式,則使用空字符串
$nn 匹配第nn個子模式的子字符串,nn等于01-99.若正則表達式中沒有定義子模式,則使用空字符串

var str = "cat, fat, eat";var result = str.replace(/(.at)/g, "my($1)");alert(result);//my(cat), my(fat), my(eat)

b、第二個參數為函數時,可以實現更為精細的替換操作。

在只有一個匹配項(即與模式匹配的字符串)時,向函數傳遞3個參數――模式的匹配性、模式匹配項在字符串中的位置和原始字符串。在正則表達式中定義了多個子模式的情況下,向函數傳遞的參數依次是模式的匹配項、第一個子模式的匹配項、第二個子模式的匹配項、......、模式匹配項在字符串中的位置和原始字符串。返回替換文本。

var str = "<a href = /"test.jsp/">link</a>";var result = str.replace(/[<>"&]/g, function(match, positon, originalStr) {  switch(match) {    case "<":      return "<";    case ">":      return ">";    case "&":      return "&";    case "/"":      return """;  }});alert(result);//<a href = "test.jsp">link</a>

4)split()方法:第一個參數為分隔符(字符串或RegExp對象,字符串不會被轉換為正則表達式),第二個參數可選,指定返回的字符串數組的大小。返回分割后的字符串數組。

var strs1 = str.split("|", 2);//["cat","fat","eat"]var str = "cat|fat|eat";var strs1 = str.split("|");alert(strs1);//cat,fat,eatvar strs2 = str.split("|", 2);alert(strs2);//cat,fatvar strs3 = str.split(/[^/|]+/);alert(strs3);//,|,|,

strs3的分隔符為“cat”、"fat"、“eat”,因此返回的數組第一項和最后一項時空字符串。

---localeCompare()方法:

比較兩個字符串,若字符串在字母表中應該排列在字符串參數之前,返回一個負數(大多數情況是-1),若在之后,返回一個正數(大多數情況是1),若相等,返回0。

alert("world".localeCompare("hello"));//1

---fromCharCode()方法:

String類的靜態方法,接收一或多個字符編碼,轉換為字符串,與charCodeAt()是相反的操作。

alert(String.fromCharCode(104, 101, 108, 108, 111));//"hello"

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript常用函數技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript頁面元素操作技巧總結》及《JavaScript操作DOM技巧總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线视频免费播放| 91精品国产91久久久久久最新| 欧美国产日产韩国视频| 日韩av成人在线| 国产啪精品视频网站| 亚洲图片欧美午夜| 色久欧美在线视频观看| 日韩毛片中文字幕| 91免费在线视频| 久久精品99国产精品酒店日本| 久久精品视频中文字幕| 欧美最猛黑人xxxx黑人猛叫黄| 综合网日日天干夜夜久久| 97色在线观看免费视频| 欧美亚洲成人网| 成人黄色在线播放| 按摩亚洲人久久| 日韩成人在线视频| 黑人巨大精品欧美一区二区三区| 一区二区三区视频免费| 久久久久久久久电影| 国产精品九九久久久久久久| 久久久久亚洲精品| 国产视频精品自拍| 国产女人精品视频| 久久黄色av网站| 久久精品视频在线观看| 欧美丰满少妇xxxxx做受| 欧美激情一区二区三区在线视频观看| 日韩在线免费视频| 久久精视频免费在线久久完整在线看| 日本一欧美一欧美一亚洲视频| 奇米一区二区三区四区久久| 中文字幕亚洲色图| 国产69精品久久久久久| 欧美激情一级二级| 日韩亚洲欧美成人| 26uuu另类亚洲欧美日本老年| 国内精品400部情侣激情| 日本高清不卡在线| 国产精品香蕉在线观看| 久久99亚洲精品| 国产精品黄页免费高清在线观看| 日韩中文在线中文网在线观看| 色先锋久久影院av| 国产精品视频永久免费播放| 国产欧美日韩丝袜精品一区| 亚洲影院高清在线| 亚洲美女免费精品视频在线观看| 日韩人体视频一二区| 最好看的2019的中文字幕视频| 国产精品91久久久| 亚洲欧美国产另类| 亚洲综合精品一区二区| 亚洲第一网中文字幕| 国产91精品视频在线观看| 欧美色另类天堂2015| 777777777亚洲妇女| 中文字幕av一区| 国内偷自视频区视频综合| 欧美成人三级视频网站| 久久综合五月天| 91中文字幕一区| 欧美精品在线看| 一本一道久久a久久精品逆3p| 高清亚洲成在人网站天堂| 亚洲最大的成人网| 在线成人免费网站| 91精品久久久久久久久久久久久久| 91精品国产91久久久久久久久| 国产精品白嫩初高中害羞小美女| 精品国产一区二区三区久久狼黑人| 亚洲精选在线观看| 亚洲精品自拍视频| 精品国产一区二区三区久久狼黑人| 日韩激情片免费| 亚洲电影av在线| 亚洲欧美制服综合另类| 91精品在线国产| 国产精品中文在线| 人妖精品videosex性欧美| 亚洲欧美日韩久久久久久| 川上优av一区二区线观看| 亚洲淫片在线视频| 亚洲欧洲午夜一线一品| 亚洲激情电影中文字幕| 日韩欧美极品在线观看| 狠狠做深爱婷婷久久综合一区| 一区二区三区四区精品| 91av视频在线播放| 欧美大尺度电影在线观看| 日韩免费高清在线观看| 亚洲成色777777在线观看影院| 中文字幕一区日韩电影| 久久精品国产久精国产一老狼| 欧美成人精品在线播放| 欧美激情网站在线观看| 日本欧美在线视频| 色中色综合影院手机版在线观看| 亚洲人成网站免费播放| 日韩中文有码在线视频| 在线亚洲欧美视频| 久久久精品美女| 91精品久久久久久久久久久| 亚洲国产成人精品一区二区| 日韩成人在线播放| 亚洲大胆人体视频| 中文字幕久久亚洲| 国产在线观看不卡| 日韩欧美在线播放| 亚洲天堂视频在线观看| 成人国产精品日本在线| 国产手机视频精品| 欧美精品电影在线| 精品成人在线视频| 国产视频福利一区| 亚洲欧洲视频在线| 久久中文字幕视频| 亚洲曰本av电影| 久久精品国产69国产精品亚洲| 欧美疯狂性受xxxxx另类| 久久91亚洲精品中文字幕| 久久亚洲综合国产精品99麻豆精品福利| 中文.日本.精品| 57pao成人国产永久免费| 日韩成人中文字幕在线观看| 国产视频精品在线| 日韩中文字幕在线播放| 国产亚洲精品激情久久| 亚洲免费av电影| 国产精品日韩专区| 色噜噜亚洲精品中文字幕| 国产区亚洲区欧美区| 久久久91精品国产| 7777免费精品视频| 91精品综合视频| 亚洲二区在线播放视频| 欧美激情中文字幕乱码免费| 国产精品久久久久7777婷婷| 2018日韩中文字幕| 欧美激情一区二区三级高清视频| 人妖精品videosex性欧美| 日韩av大片在线| 精品日本美女福利在线观看| 欧美亚洲成人免费| 欧美精品一区二区免费| 亚洲一区二区三区久久| 亚洲成人激情在线观看| 久久91超碰青草是什么| 亚洲乱亚洲乱妇无码| 国产成人亚洲综合91精品| 狠狠色狠狠色综合日日小说| 久久久国产视频91| 狠狠色狠狠色综合日日小说| 国产91九色视频| 亚洲午夜精品视频| 韩国三级电影久久久久久| 庆余年2免费日韩剧观看大牛| 97免费视频在线播放| 亚洲精品理论电影| 国产在线视频欧美| 欧美激情视频免费观看| 久久精品中文字幕电影| 欧美日韩国产麻豆|