第一百零七節,JavaScript基本包裝類型,數據類型的方法

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>

其餘相同

相關文章
相關標籤/搜索