JavaScript基本包裝類型,數據類型的方法css
學習要點:html
1.基本包裝類型概述正則表達式
2.Boolean類型數組
3.Number類型瀏覽器
4.String類型app
爲了便於操做基本類型值,ECMAScript提供了3個特殊的引用類型:Boolean、Number和String。這些類型與其餘引用類型類似,但同時也具備與各自的基本類型相應的特殊行爲。實際上,每當讀取一個基本類型值的時候,後臺就會建立一個對應的基本包裝類型的對象,從而可以調用一些方法來操做這些數據。函數
一.基本包裝類型概述學習
substring()截取字符串指定索引後面的字符,有參截取開始位置編碼
var box = 'Mr. Lee'; //定義一個字符串 var box2 = box.substring(2); //截掉字符串前兩位,也就是從第二個索引開始截取後面的字符串 alert(box2); //輸出新字符串
變量box是一個字符串類型,而box.substring(2)又說明它是一個對象(PS:只有對象纔會調用方法),最後把處理結果賦值給box2。'Mr. Lee'是一個字符串類型的值,按道理它不該該是對象,不該該會有本身的方法,可是它卻有方法這就是基本包裝類型,好比:spa
alert('Mr. Lee'.substring(2)); //直接經過值來調用方法
1.字面量方式建立的只能用內置的方法:
var box = 'Mr. Lee'; //字面量 box.name = 'Lee'; //無效屬性 box.age = function () { //無效方法 return 100; }; alert(box); //Mr. Lee alert(box.substring(2)); //. Lee alert(typeof box); //string alert(box.name); //undefined alert(box.age()); //錯誤
2.new運算建立的還能夠自定義方法:
var box = new String('Mr. Lee'); //new運算符,建立字符串類型 box.name = 'Lee'; //有效屬性 box.age = function () { //有效方法 return 100; }; alert(box); //Mr. Lee alert(box.substring(2)); //. Lee alert(typeof box); //object alert(box.name); //Lee alert(box.age()); //100
無論字面量形式仍是new運算符形式,均可以使用它的內置方法
以上字面量聲明和new運算符聲明很好的展現了他們之間的區別。但有點定仍是能夠確定的,那就是無論字面量形式仍是new運算符形式,均可以使用它的內置方法。而且Boolean和Number特性與String相同,三種類型能夠成爲基本包裝類型。
PS:在使用new運算符建立以上三種類型的對象時,能夠給本身添加屬性和方法,但咱們建議不要這樣使用,由於這樣會致使根本分不清究竟是基本類型值仍是引用類型值。
二.Boolean類型,布爾值
Boolean類型沒有特定的屬性或者方法。
三.Number類型,數字
Number類型有一些靜態屬性(直接經過Number調用的屬性,而無須new運算符)和方法。
Number靜態屬性
屬 性 |
描述 |
MAX_VALUE |
表示最大數 |
MIN_VALUE |
表示最小值 |
NaN |
非數值 |
NEGATIVE_INFINITY |
負無窮大,溢出返回該值 |
POSITIVE_INFINITY |
無窮大,溢出返回該值 |
prototype |
原型,用於增長新屬性和方法 |
Number靜態屬性,無需經過變量名稱來調用,直接經過類型名稱就能夠調用
MAX_VALUE表示最大數
//MAX_VALUE表示最大數 alert(Number.MAX_VALUE);
MIN_VALUE表示最小值
//MIN_VALUE表示最小值 alert(Number.MIN_VALUE);
NaN非數值
//NaN非數值 alert(Number.NaN);
NEGATIVE_INFINITY負無窮大,溢出返回該值
//NEGATIVE_INFINITY負無窮大,溢出返回該值 alert(Number.NEGATIVE_INFINITY);
POSITIVE_INFINITY無窮大,溢出返回該值
//POSITIVE_INFINITY無窮大,溢出返回該值 alert(Number.POSITIVE_INFINITY);
Number內置對象的方法
方 法 |
描述 |
toString() |
將數值轉化爲字符串,而且能夠轉換進制 |
toLocaleString() |
根據本地數字格式轉換爲字符串 |
toFixed() |
將數字保留小數點後指定位數並轉化爲字符串 |
toExponential() |
將數字以指數形式表示,保留小數點後指定位數並轉化爲字符串 |
toPrecision() |
指數形式或點形式表述數,保留小數點後面指定位數並轉化爲字符串 |
toString()將數值轉化爲字符串,而且能夠轉換進制
var sdc = 123; alert(sdc.toString()); //toString()將數值轉化爲字符串,而且能夠轉換進制 //返回'123'
toLocaleString()根據本地數字格式轉換爲字符串,就像表示資金數字那樣
var sdc = 1000; alert(sdc.toLocaleString()); //toLocaleString()根據本地數字格式轉換爲字符串 //返回'1,000'
toFixed()將數字保留小數點後指定位數並轉化爲字符串,【有參保留多少位】
var sdc = 12.5632; alert(sdc.toFixed(2)); //toFixed()將數字保留小數點後指定位數並轉化爲字符串 //返回'12.56'
toExponential()將數字以指數形式表示,保留小數點後指定位數並轉化爲字符串
var sdc = 12.5632; alert(sdc.toExponential()); //toExponential()將數字以指數形式表示,保留小數點後指定位數並轉化爲字符串 //返回'1.25632e+1'
toPrecision()指數形式或點形式表述數,保留小數點後面指定位數並轉化爲字符串,【有參小數點後保留多少位】根據傳參來決定指數或者點數
var sdc = 12.356; alert(sdc.toPrecision(3)); //toPrecision()指數形式或點形式表述數,保留小數點後面指定位數並轉化爲字符串 //返回'12.4'
四.String類型,字符串
String類型包含了三個屬性和大量的可用內置方法。
String對象屬性
屬 性 |
描述 |
length |
返回字符串的字符長度 |
constructor |
返回建立String對象的函數 |
prototype |
經過添加屬性和方法擴展字符串定義 |
length屬性返回字符串的字符長度
var adc = "字符串"; alert(adc.length); //length屬性返回字符串的字符長度 //返回3
constructor屬性返回建立String對象的函數
var adc = "字符串"; alert(adc.constructor); //constructor屬性返回建立String對象的函數 /*返回 function String() { [native code] } */
prototype原型經過添加屬性和方法擴展字符串定義
後面講原型的時候專門講解
String也包含對象的通用方法,好比valueOf()、toLocaleString()和toString()方法,但這些方法都返回字符串的基本值。
字符方法
方 法 |
描述 |
charAt(n) |
返回指定索引位置的字符 |
charCodeAt(n) |
以Unicode編碼形式返回指定索引位置的字符 |
charAt()返回指定索引位置的字符,【有參索引位置數】
var adc = "字符串"; alert(adc.charAt(1)); //charAt()返回指定索引位置的字符 //返回-符
charCodeAt()以Unicode編碼形式返回指定索引位置的字符【有參索引位置數】返回字符的acssii碼
var adc = "字符串"; alert(adc.charCodeAt(1)); //charCodeAt()以Unicode編碼形式返回指定索引位置的字符 //返回-31526
經過索引獲取字符串裏指定的字符
var adc = "字符串"; alert(adc[1]); //經過索引獲取字符串裏指定的字符 //返回-符
PS:box[1]在IE瀏覽器會顯示undefined,因此使用時要慎重
字符串操做方法
方 法 |
描述 |
concat(str1...str2) |
將字符串參數串聯到調用該方法的字符串 |
slice(n,m) |
返回字符串n到m之間位置的字符串 |
substring(n,m) |
同上 |
substr(n,m) |
返回字符串n開始的m個字符串 |
concat()將字符串聯到調用該方法的字符串【有參要串聯的字符串】
var adc = "字符串"; var adc2 = "鏈接起來"; var adc3 = "!"; alert(adc.concat(adc2,adc3)); //concat()將字符串聯到調用該方法的字符串 //返回-字符串鏈接起來!
slice()返回字符串n到m之間位置的字符串【有參索引範圍】
var adc = "叫賣錄音網"; alert(adc.slice(2,4)); //slice()返回字符串n到m之間位置的字符串 //返回-錄音
主意:若是隻寫了一個參數,這個參數就是開始參數,就會從這個參數位置開始向後所有獲取,由於沒有結束位置
若是傳參爲負數,先統計字符串全部字符數,全部字符數加上負數,等於開始位置
var adc = "叫賣錄音網"; alert(adc.slice(-2)); //5+(-2)=3位開始 //返回-音網
若是傳參一個正數一個負數,先統計字符串全部字符數,全部字符數加上負數,等於負數位置的正數
var adc = "叫賣錄音網"; alert(adc.slice(3,-1)); //5+(-1)=4, 等同於設置(3,4) //返回-音
substring()返回字符串n到m之間位置的字符串【有參索引範圍】
var adc = "叫賣錄音網"; alert(adc.substring(2,4)); //substring()返回字符串n到m之間位置的字符串 //返回-錄音
主意:若是隻寫了一個參數,這個參數就是開始參數,就會從這個參數位置開始向後所有獲取,由於沒有結束位置
若是傳參爲負數,返回所有字符串
var adc = "叫賣錄音網"; alert(adc.substring(-1)); //若是傳參爲負數,返回所有字符串 //返回-叫賣錄音網
若是傳參一個正數一個負數,會將負數直接轉換成0,而且將0提在前面
var adc = "叫賣錄音網"; alert(adc.substring(2,-1)); //會將負數直接轉換成0,而且將0提在前面,等同於設置(0,2) //返回-叫賣
substr()返回字符串n開始的m個字符串,就是從字符串第幾個位置開始向後顯示多少位字符【有參第一個參數從第幾位開始,第二個參數向後顯示幾位】
var adc = "叫賣錄音網"; alert(adc.substr(2,4)); //substr()返回字符串n開始的m個字符串,就是從字符串第幾個位置開始向後顯示多少位字符 //返回-錄音網
主意:若是隻寫了一個參數,這個參數就是開始參數,就會從這個參數位置開始向後所有獲取,由於沒有結束位置
若是傳參爲負數,先統計字符串全部字符數,全部字符數加上負數,等於開始位置
var adc = "叫賣錄音網"; alert(adc.substr(-3)); //5+(-3)=2位開始 //返回-錄音網
若是傳參一個正數一個負數,會將負數直接轉換成0
var adc = "叫賣錄音網"; alert(adc.substr(2,-4)); //若是傳參一個正數一個負數,會將負數直接轉換成0,等同於(2,0) //返回
PS:IE的JavaScript實如今處理向substr()方法傳遞負值的狀況下存在問題,它會返回原始字符串,使用時要切記。
字符串位置方法
方 法 |
描述 |
indexOf(str, n) |
從n開始搜索的第一個str,並將搜索的索引值返回 |
lastIndexOf(str, n) |
從n開始搜索的最後一個str,並將搜索的索引值返回 |
indexOf()從開始位置向後搜索第一個str,並將搜索的索引值返回,【有參第一個要搜索的字符,第二個可選,從前到後搜索開始位置】
var adc = "叫賣錄音網專業廣告錄音"; alert(adc.indexOf('錄')); //從開始位置向後搜索第一個str,並將搜索的索引值返回,【有參第一個要搜索的字符,第二個可選,從前到後搜索開始位置】 //返回-2
設置第二個參數
var adc = "叫賣錄音網專業廣告錄音"; alert(adc.indexOf('錄',3)); //從開始位置向後搜索第一個str,並將搜索的索引值返回,【有參第一個要搜索的字符,第二個可選,從前到後搜索開始位置】 //返回-9
lastIndexOf()從結尾位置向前搜索第一個str,並將搜索的索引值返回,【有參第一個要搜索的字符,第二個可選,從後到前搜索開始位置】
var adc = "叫賣錄音網專業廣告錄音"; alert(adc.lastIndexOf('錄')); //lastIndexOf()從結尾位置向前搜索第一個str,並將搜索的索引值返回,【有參第一個要搜索的字符,第二個可選,從後到前搜索開始位置】 //返回-9
設置第二個參數
var adc = "叫賣錄音網專業廣告錄音"; alert(adc.lastIndexOf('錄',2)); //lastIndexOf()從結尾位置向前搜索第一個str,並將搜索的索引值返回,【有參第一個要搜索的字符,第二個可選,從後到前搜索開始位置】 //返回-2
PS:若是沒有找到想要的字符串,則返回-1。
示例:找出所有錄
var box = '叫賣錄音網專業廣告錄音'; //包含兩個(錄)的字符串 var boxarr = []; //存放(錄)位置的數組 var pos = box.indexOf('錄'); //先獲取第一個(錄)的位置 while (pos > -1) { //若是位置大於-1,說明還存在(錄) boxarr.push(pos); //添加到數組 pos = box.indexOf('錄', pos + 1); //重新賦值pos目前的位置 } alert(boxarr); //輸出
大小寫轉換方法
方 法 |
描述 |
toLowerCase(str) |
將字符串所有轉換爲小寫 |
toUpperCase(str) |
將字符串所有轉換爲大寫 |
toLocaleLowerCase(str) |
將字符串所有轉換爲小寫,而且本地化 |
toLocaleupperCase(str) |
將字符串所有轉換爲大寫,而且本地化 |
toLowerCase()將字符串所有轉換爲小寫 【無參】
var box = 'JXIOU'; alert(box.toLowerCase()); //toLowerCase()將字符串所有轉換爲小寫 //返回jxiou
toUpperCase()將字符串所有轉換爲大寫【無參】
var box = 'jxiou'; alert(box.toUpperCase()); //toUpperCase()將字符串所有轉換爲大寫【無參】 //返回JXIOU
toLocaleLowerCase()將字符串所有轉換爲小寫,而且本地化
var box = 'JXIOU'; alert(box.toLocaleLowerCase()); //toLocaleLowerCase()將字符串所有轉換爲小寫,而且本地化 //返回jxiou
toLocaleUpperCase()將字符串所有轉換爲大寫,而且本地化
var box = 'jxiou'; alert(box.toLocaleUpperCase()); //toLocaleUpperCase()將字符串所有轉換爲大寫,而且本地化 //返回JXIOU
PS:只有幾種語言(如土耳其語)具備地方特有的大小寫本地性,通常來講,是否本地化效果都是一致的。
字符串的模式匹配方法
方 法 |
描述 |
match(pattern) |
返回pattern 中的子串或null |
replace(pattern, replacement) |
用replacement 替換pattern |
search(pattern) |
返回字符串中pattern 開始位置 |
split(pattern) |
返回字符串按指定pattern 拆分的數組 |
正則表達式在字符串中的應用,在前面的章節已經詳細探討過,這裏就再也不贅述了。以上中match()、replace()、serach()、split()在普通字符串中也可使用。
match()查找字符串裏的指定字符,找到返回找到的字符,沒找到返回null【有參要查找的字符串】
var box = '叫賣錄音網'; alert(box.match('錄')); //match()查找字符串裏的指定字符,找到返回找到的字符,沒找到返回null【有參要查找的字符串】 //返回錄
search()返回要查找的字符在字符串裏的開始位置,【有參要查找的字符】
var box = '叫賣錄音網'; alert(box.search('錄')); //search()返回要查找的字符在字符串裏的開始位置,【有參要查找的字符】 //返回2
replace()替換指定的字符【有參第一個被替換的字符,第二個要替換的字符】
var box = '叫賣錄音網'; alert(box.replace('錄','廣')); //replace()替換指定的字符【有參第一個被替換的字符,第二個要替換的字符】 //返回叫賣廣音網
split()按照指定字符分割,返回數組【有參要分割的字符】
var box = '叫賣錄音網'; alert(box.split('錄')); //split()按照指定字符分割,返回數組 //返回叫賣,音網
其餘方法
方 法 |
描述 |
fromCharCode(ascii) |
靜態方法,輸出Ascii碼對應值 |
localeCompare(str1,str2) |
比較兩個字符串,並返回相應的值 |
fromCharCode()靜態方法,輸出Ascii碼對應值,靜態方法直接用數據類型名稱調用【有參Ascii碼】
alert(String.fromCharCode(76)); //fromCharCode()靜態方法,輸出Ascii碼對應值 //返回L
localeCompare()比較兩個字符串,並返回相應的值【有參要比較的字符】
localeCompare()方法詳解:比較兩個字符串並返回如下值中的一個;
1.若是字符串在字母表中應該排在字符串參數以前,則返回一個負數。(多數-1)
2.若是字符串等於字符串參數,則返回0。
3.若是字符串在自附表中應該排在字符串參數以後,則返回一個正數。(多數1)
var box = 'Lee'; alert(box.localeCompare('apple')); //1 alert(box.localeCompare('Lee')); //0 alert(box.localeCompare('zoo')); //-1
HTML方法
方 法 |
描述 |
anchor(name) |
<a name="name">str</a> |
big() |
<big>str</big> |
blink() |
<blink>str</blink> |
bold() |
<b>Str</b> |
fixed() |
<tt>Str</tt> |
fontcolor(color) |
<font color="color">str</font> |
fontsize(size) |
<font size="size">str</font> |
link(URL) |
<a href="URL">str</a> |
small() |
<small>str</small> |
strike() |
<strike>str</strike> |
italics() |
<i>italics</i> |
sub() |
<sub>str</sub> |
sup() |
<sup>str</sup> |
以上是經過JS生成一個html標籤,根據經驗,沒什麼太大用處,作個瞭解。
var box = '百度'; alert(box.link('http://www.baidu.com')); //返回<a href="http://www.baidu.com">百度</a>
其餘相同