基礎包裝範例
3個特別的援用範例:Boolean
、Number
、String
var box = "Mr. Lee"; //基礎範例
alert(box.substring(2)); //打印 . Lee
//對象.要領(參數)這類寫法顯著是援用範例寫法
//索引0最先,從第二個位置最先最先截取到末端
//是基礎範例,但又是特別的援用範例,叫做基礎包裝範例
//由於它能夠挪用體系內置的要領
援用範例與基礎包裝範例的重要區分就是對象的生存期。
為何基礎範例不能增添屬性?
緣由:運用new
操作符建立的援用範例實例,在實行流脫離當前作用域之前都一向保存在內存中。而自動建立的基礎包裝範例的對象,則只存在於一行代碼的實行霎時,然後馬上燒毀。這意味着我們不能在運行時為基礎範例值增添屬性和要領。
基礎包裝範例沒法給自身建立屬性和要領,然則能夠挪用體系內置的屬性和要領。
對基礎包裝範例的實例挪用typeof
會返回object
,而且一切基礎包裝範例的對象在轉換為布爾範例時價都是true
。
運用new
挪用基礎包裝範例的組織函數,與直接挪用同名的轉型函數是不一樣的。
var value = "25";
var number = Number(value); //轉型函數
aleat(typeof number); //"number"
var obj = new Number(value); //組織函數
aleat(typeof obj); //"object"
Number範例
Number
範例有一些靜態屬性(直接經由過程Number
挪用的屬性,而無須new
運算符)和方
法。Number
靜態屬性
屬性 | 形貌 |
---|---|
MAX_VALUE | 示意最大數 |
MIN_VALUE | 示意最小值 |
NaN | 非數值 |
NEGATIVE_INFINITY | 負無窮大,溢出返回該值 |
POSITIVE_INFINITY | 無窮大,溢出返回該值 |
prototype | 原型,用於增添新屬性和要領 |
例:
var box = 100;
alert(box.MAX_VALUE); //沒有這類寫法,這類寫法叫做屬性
alert(Number.MAX_VALUE); //這類寫法(範例.屬性)叫做靜態屬性
Number
對象的要領
要領 | 形貌 |
---|---|
toString() | 將數值轉化為字符串,而且能夠轉換進制 |
toLocaleString() | 依據當地数字花樣轉換為字符串 |
toFixed() | 將数字保存小數點后指定位數並轉化為字符串 |
toExponential() | 將数字以指數情勢示意,保存小數點后指定位數並轉化為字符串 |
toPrecision() | 指數情勢或點情勢表述數,保存小數點背面指定位數並轉字符串 |
String
範例
String
範例包含了三個屬性和大批的可用內置要領。
String
對象屬性
屬性 | 形貌 |
---|---|
length | 返回字符串的字符長度 |
constructor | 返回建立String 對象的函數 |
prototype | 經由過程增添屬性和要領擴大字符串定義 |
例:
var box = "Mr. Lee";
alert(box.constructor); //打印:ƒ String() { [native code] }
字符串要領
要領 | 形貌 |
---|---|
charAt(n) | 返回指定索引位置的字符 |
charCodeAt(n) | 以Unicode 編碼情勢返回指定索引位置的字符 |
fromCharCode(ascii) | 靜態要領,輸出Ascii 碼對應值 |
例:
var box = "Mr. Lee";
alert(box.charAt(1)); //打印r,即是box[1]
alert(box.charCodeAt(4)); //打印76
要領 | 形貌 |
---|---|
concat() | 拼接字符串 |
slice(n,m) | 返回字符串n 到m 之間位置的字符串,[n,m) |
substring(n,m) | 同上 |
substr(n,m) | 返回字符串n 最先的m 個字母 |
slice()
`substring()第
2`個參數指定的是字符串中末了一個字符的位置。substr()
第2
個參數是返回字符的個數。
相同點:假如沒有第2
個參數,則一向獵取到末了。他們不會轉變字符串自身的值。
例:
var box = "Mr. Lee";
alert(box.concat(" is ","teacher!"));//字符串拼接,打印:Mr. Lee is teacher!
alert(box.slice(4,6)); //截取字符串[4,6),打印:Le
alert(box.substring(4,6)); //截取字符串[4,6),打印:Le
alert(box.substr(4,2)); //從索引4位置截取2個字符,打印:Le
alert(box.slice(4)); //假如沒有第2個參數,則一向獵取到末了一名,打印:Lee
alert(box.substring(4)); //假如沒有第2個參數,則一向獵取到末了一名,打印:Lee
alert(box.substr(4)); //假如沒有第2個參數,則一向獵取到末了一名,打印:Lee
alert(box.slice(-2)); //7+(-2)=5,從索引5位置最先到末了,打印:ee
alert(box.substring(-2)); //參數為負數,則返回悉数字符串,打印:Mr. Lee
alert(box.substr(-2)); //7+(-2)=5,從索引5位置最先到末了,打印:ee
alert(box.slice(2,-1)); //7+(-1)=6,[2,6),打印:. Le
alert(box.substring(2,-1)); //假如參數為負數,直接0;假如第2個參數比第1個小,那末第2個參數提早,[0,2),打印:Mr
alert(box.substr(2,-1)); //第2個參數為負數,直接0,[2,0),空,打印:空
要領 | 形貌 |
---|---|
indexOf(str,n) | 從初始位置搜刮n 第1 次湧現的位置,並將搜刮的索引值返回 |
lastIndexOf(str,n) | 從末端位置搜刮n 第1 次湧現的位置,並將搜刮的索引值返回 |
例:
var box = "Mr. Lee is Lee";
alert(box.indexOf('L')); //從初始位置搜刮L第一次湧現的位置,打印:4
alert(box.lastIndexOf('L')); //從末端位置搜刮L第一次湧現的位置,打印:11
alert(box.indexOf('L',5)); //從索引5位置向後搜刮L第一次湧現的位置,打印:11
alert(box.lastIndexOf('L',5)); //從索引5位置向前搜刮L第一次湧現的位置,打印:4
alert(box.indexOf(-1)); //找不到,打印:-1
indexOf
運用實例:
var box = "Lorem ipsum dolor sit amet,consectetur adipisicing elit";
var postion = new Array();
var pos = box.indexOf("e");
while(pos > -1){ //pos>-1,申明找到字符串
postion.push(pos); // 用push推入數組
pos = box.indexOf("e", pos + 1); //pos+1,從e后一個位置在最先尋覓。
}
alert(postion); //打印:3,24,31,34,51
字符串的形式婚配要領
要領 | 形貌 |
---|---|
match(pattern) | 返回pattern 中的子串或null |
replace(pattern, replacement) | 用replacement 替代pattern |
search(pattern) | 返回字符串中pattern 最先位置 |
split(pattern) | 返回字符串按指定pattern 拆分的數組 |
例:
var box = 'Mr.Lee is Lee';
alert(box.match('L')); //找到L,打印:L 不然打印:null
alert(box.search('L')); //找到L的位置,打印:3
alert(box.replace('L', 'Q')); //把L替代成Q,打印:Mr.Qee is Lee
alert(box.split(' ')); //以空格分割成字符串,打印:Mr.Lee,is,Lee
localeCompare()
要領,比較兩個字符串,並返回以下值中一個:
- 假如比較的字符串首字母比變量的首字母排在前,返回
1
- 假如比較的字符串首字母和變量的首字母排相稱,返回
0
- 假如比較的字符串首字母比變量的首字母排在後,返回
-1
例:
var box = "yellow";
alert(box.localeCompare("brick")); //打印:1
alert(box.localeCompare("yellow")); //打印:0
alert(box.localeCompare("zoo")); //打印:-1