天天看點

Html5遊戲封包,學習JavaScript-10-基本封包類型

學習要點:

1.基本包裝類型概述

2.Boolean類型

3.Number類型

4.String類型

為了便于操作基本類型值,ECMAScript提供了3個特殊的引用類型:Boolean、Number

和String。這些類型與其他引用類型相似,但同時也具有與各自的基本類型相應的特殊行為。

實際上,每當讀取一個基本類型值的時候,背景就會建立一個對應的基本包裝類型的對象,

進而能夠調用一些方法來操作這些資料。

一.基本包裝類型概述

var box='Mr.

Lee'; //定義一個字元串

var box2=box.substring(2); //截掉字元串前兩位

alert(box2); //輸出新字元串

變量box是一個字元串類型,而box.substring(2)又說明它是一個對象(PS:隻有對象才

會調用方法),最後把處理結果指派給box2。'Mr. Lee'是一個字元串類型的值,按道理它不

應該是對象,不應該會有自己的方法,比如:

alert('Mr.Lee'.substring(2)); //直接通過值來調用方法

1.字面量寫法:

varbox='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=newString('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運算符形式,都可以使用它的内置方法。并且

Boolean和Number特性與String相同,三種類型可以成為基本包裝類型。

PS:在使用new運算符建立以上三種類型的對象時,可以給自己添加屬性和方法,但

我們建議不要這樣使用,因為這樣會導緻根本分不清到底是基本類型值還是引用類型值。

二.Boolean類型

Boolean類型沒有特定的屬性或者方法。

三.Number類型

Number類型有一些靜态屬性(直接通過Number調用的屬性,而無須new運算符)和方

法。

Number靜态屬性

屬性 描述

MAX_VALUE 表示最大數

MIN_VALUE 表示最小值

NaN 非數值

NEGATIVE_INFINITY 負無窮大,溢出傳回該值

POSITIVE_INFINITY 無窮大,溢出傳回該值

prototype 原型,用于增加新屬性和方法

Number對象的方法

方法 描述

toString() 将數值轉化為字元串,并且可以轉換進制

toLocaleString() 根據本地數字格式轉換為字元串

toFixed() 将數字保留小數點後指定位數并轉化為字元串

toExponential() 将數字以指數形式表示,保留小數點後指定位數并轉化為字元串

toPrecision() 指數形式或點形式表述數,保留小數點後面指定位數并轉化為字元串

varbox=1000.789;

alert(box.toString()); //轉換為字元串,傳參可以轉換進制

alert(box.toLocaleString()); //本地形式,1,000.789

alert(box.toFixed(2)); //小數點保留,1000.78

alert(box.toExponential()); //指數形式,傳參會保留小數點

alert(box.toPrecision(3)); //指數或點形式,傳參保留小數點

四.String類型

String類型包含了三個屬性和大量的可用内置方法。

String對象屬性

屬性 描述

length 傳回字元串的字元長度

constructor 傳回建立String對象的函數

prototype 通過添加屬性和方法擴充字元串定義

String也包含對象的通用方法,比如valueOf()、toLocaleString()和toString()方法,但這

些方法都傳回字元串的基本值。

字元方法

方法 描述

charAt(n) 傳回指定索引位置的字元

charCodeAt(n) 以Unicode編碼形式傳回指定索引位置的字元

varbox='Mr.Lee';

alert(box.charAt(1)); //r

alert(box.charCodeAt(1)); //114

alert(box[1]); //r,通過數組方式截取

PS:box[1]在IE浏覽器會顯示undefined,是以使用時要慎重。字元串操作方法

方法 描述

concat(str1...str2) 将字元串參數串聯到調用該方法的字元串

slice(n,m) 傳回字元串n到m之間位置的字元串

substring(n,m) 同上

substr(n,m) 傳回字元串n開始的m個字元串

varbox='Mr.Lee';

alert(box.concat('is', ' Teacher', '!')); //Mr.LeeisTeacher!

alert(box.slice(3)); //Lee

alert(box.slice(3,5)); //Le

alert(box.substring(3)); //Lee

alert(box.substring(3,5)); //Le

alert(box.substr(3)); //Lee

alert(box.substr(3,5)); //Lee

var box='Mr.Lee';

alert(box.slice(-3)); //Lee,6 (-3)=3位開始

alert(box.substring(-3)); //Mr.Lee 負數傳回全部

alert(box.substr(-3)); //Lee,6 (-3)=3位開始

var box='Mr.Lee';

alert(box.slice(3,-1)); //Le6

(-1)=5,(3,5)

alert(box.substring(3,-1)); //Mr.

第二參為負,直接轉0,

//并且方法會把較小的數字提前,(0,3)

alert(box.substr(3,-1)); //'' 第二參數為負,直接轉0,(3,0)

PS:IE的JavaScript實作在處理向substr()方法傳遞負值的情況下存在問題,它會傳回原始字元串,使用時要切記。字元串位置方法

方法 描述

indexOf(str,n)