官术网_书友最值得收藏!

6.2 數值處理對象

6.2.1 Math對象

Math對象提供了大量的數學常量和數學函數。在使用Math對象時,不能使用new關鍵字創建對象實例,而應直接使用“對象名.成員”的格式來訪問其屬性或方法。下面將對Math對象的屬性和方法進行介紹。

1.Math對象的屬性

Math對象的屬性是數學中常用的常量,如表6.2所示。

表6.2 Math對象的屬性

例如:

    var piValue = Math.PI;       //計算圓周率
    var rootofTwo = Math.SQRT2;  //計算平方根
2.Math對象的方法

Math對象的方法是數學中常用的函數,如表6.3所示。

表6.3 Math對象的方法

例如,計算兩個數值中的較大值,可以通過Math對象的max()函數實現,代碼如下:

    var larger = Math.max(value1,value2);

計算一個數的10次方,代碼如下:

    var result = Math.pow(value1,10);

使用四舍五入函數計算最相近的整數值,代碼如下:

    var result = Math.round(value);

【例6.6】 隨機產生指定位數的驗證碼。(實例位置:資源包\TM\sl\6\06)

(1)編寫隨機產生指定位數的驗證碼函數checkCode(),該函數只有一個參數digit,用于指定產生的驗證碼的位數,返回值為指定位數的驗證碼,代碼如下:

(2)編寫JavaScript自定義函數deal(),調用checkCode()函數將轉換后的字符串顯示在指定位置,代碼如下:

(3)在頁面添加一個<div>標記,將其命名為result,用于顯示產生的驗證碼,代碼如下:

    <div id="result">&nbsp;&nbsp;產生的驗證碼:</div>

(4)在頁面的合適位置添加“生成”按鈕,在該按鈕的onclick事件中調用deal()函數生成驗證碼。代碼如下:

    <input name="Submit" type="button" class="go-wenbenkuang" value="生成" onclick="deal()">

運行結果如圖6.9所示。

圖6.9 隨機生成驗證碼

6.2.2 Number對象

由于JavaScript使用簡單數值完成日常數值的計算,因此,Number對象很少被使用。當需要訪問某些常量值時,如數字的最大或最小可能值、正無窮大或負無窮大時,該對象顯得非常有用。

1.創建Number對象

Number對象是原始數值的包裝對象,使用該對象可以將數字作為對象直接進行訪問。它可以不與new運算符一起使用,而直接作為轉換函數來使用。以這種方式調用Number()時,它會把自己的參數轉化成一個數字,然后返回轉換后的原始數值(或NaN)。

語法格式:

    numObj=new Number(value)

參數說明:

numObj:要賦值為Number對象的變量名。

value:可選項,表示新對象的數值。如果忽略value,則返回值為0。

例如,創建一個Number對象,代碼如下:

    var numObj1=new Number();
    var numObj2=new Number(0);
    var numObj3=new Number(-1);
    document.write(numObj1+"<br>");
    document.write(numObj2+"<br>");
    document.write(numObj3+"<br>");

運行結果:

    0
    0
    -1
2.Number對象的屬性

(1)MAX_VALUE屬性

MAX_VALUE屬性用于返回Number對象的最大可能值。

語法格式:

    value=Number.MAX_VALUE

參數說明:

value:存儲Number對象的最大可能值的變量。

例如,獲取Number對象的最大可能值。代碼如下:

    var maxvalue=Number.MAX_VALUE;
    document.write(maxvalue);

運行結果:

    1.7976931348623157e+308

(2)MIN_VALUE屬性

MIN_VALUE屬性用于返回Number對象的最小可能值。

語法格式:

    value=Number.MIN_VALUE

參數說明:

value:存儲Number對象的最小可能值的變量。

例如,獲取Number對象的最小可能值,代碼如下:

    var minvalue=Number.MIN_VALUE;
    document.write(minvalue);

運行結果:

    5e-324

(3)NEGATIVE_INFINITY屬性

NEGATIVE_INFINITY屬性用于返回Number對象負無窮大的值。

語法格式:

    value=Number. NEGATIVE_INFINITY

參數說明:

value:存儲Number對象負無窮大的值。

例如,獲取Number對象負無窮大的值,代碼如下:

    var negative=Number.NEGATIVE_INFINITY;
    document.write(negative);

運行結果:

    -Infinity

(4)POSITIVE_INFINITY屬性

POSITIVE_INFINITY屬性用于返回Number對象正無窮大的值。

語法格式:

    value=Number.POSITIVE_INFINITY

參數說明:

value:存儲Number對象正無窮大的值。

例如,獲取Number對象正無窮大的值,代碼如下:

    var positive=Number.POSITIVE_INFINITY;
    document.write(positive);

運行結果:

    Infinity
3.Number對象的方法

(1)toString()方法

toString()方法可以把Number對象轉換成一個字符串,并返回結果。

語法格式:

    NumberObject.toString(radix)

參數說明:

radix:可選項。用于指定表示數字的基數,是2~36的整數。若省略該參數,則使用基數為10。但要注意,如果該參數是10以外的其他值,則ECMAScript標準允許實現返回任意值。

返回值:數字的字符串表示。

例如,將數字轉換成字符串。代碼如下:

運行結果:

    10
    10
    1010
    12
    a

(2)toLocaleString()方法

toLocaleString()方法可以把Number對象轉換為本地格式的字符串。

語法格式:

    NumberObject.toLocaleString()

參數說明:

返回值:數字的字符串表示,并根據本地的規范進行格式化(可能影響到小數點或千分位分隔符采用的標點符號)。

例如,將數字轉換成字符串。代碼如下:

    var num=new Number(10.66560);
    document.write(num.toLocaleString()+"<br>");

運行結果:

    10.666

(3)toFixed()方法

toFixed()方法將Number對象四舍五入為指定小數位數的數字,然后轉換成字符串。

語法格式:

    NumberObject.toFixed(num)

參數說明:

num:必選項。用于指定小數的位數,是0~20的值(包括0和20),有些實現可以支持更大的數值范圍。如果省略該參數,用0代替。

返回值:數字的字符串表示。不采用指數計數法,小數點后有固定的num位數字。如果num參數為空,默認值為0。如果num大于1e+21,則該方法只調用NumberObject.toString(),返回采用指數計數法表示的字符串。

例如,將數字的小數部分以指定位數進行四舍五入后轉換成字符串,代碼如下:

    var num=new Number(10.25416);
    document.write(num.toFixed()+"<br>");
    document.write(num.toFixed(0)+"<br>");
    document.write(num.toFixed(1)+"<br>");
    document.write(num.toFixed(3)+"<br>");
    document.write(num.toFixed(7)+"<br>");

運行結果:

    10
    10
    10.3
    10.254
    10.2541600

(4)toExponential()方法

toExponential()方法利用指數計數法計算Number對象的值,然后將其轉換成字符串。

語法格式:

    NumberObject.toExponential(num)

參數說明:

num:必選項。用于指定指數計數法中的小數位數,是0~20的值(包括0和20),個別情況下可以支持更大的數值范圍。如果省略該參數,將使用盡可能多的數字。

返回值:數字的字符串表示。采用指數計數法,即小數點之前有一位數字,小數點之后有num位數字。該數字的小數部分將被舍入,必要時用0補足,以便達到指定的長度。

例如,將數字以指數計數法計算后轉換成字符串,代碼如下:

    var num=new Number(2000000.45);
    document.write(num.toExponential()+"<br>");
    document.write(num.toExponential(0)+"<br>");
    document.write(num.toExponential(1)+"<br>");
    document.write(num.toExponential(3)+"<br>");
    document.write(num.toExponential(7)+"<br>");

運行結果:

    2.00000045e+6
    2e+6
    2.0e+6
    2.000e+6
    2.0000004e+6

(5)toPrecision()方法

toPrecision()方法將Number對象轉換成字符串,并根據不同的情況選擇定點計數法或指數計數法。

語法格式:

    NumberObject.toPrecision(num)

參數說明:

num:必選項。用于指定指數計數法中的小數位數,是0~20的值(包括0和20),個別情況下可以支持更大的數值范圍。如果省略該參數,將使用盡可能多的數字。

返回值:數字的字符串表示,包含num個有效數字。如果num足夠大,能夠包括整數部分的所有數字,那么返回的字符串將采用定點計數法;否則將采用指數計數法,即小數點前有一位數字,小數點后有num-1位數字。必要時,該數字會被舍入或用0補足。

例如,根據不同的情況,使用定點計數法或指數計數法將數字轉換成字符串,代碼如下:

運行結果:

    1.000e+4
    10000.00000

6.2.3 Boolean對象

在JavaScript中經常會使用Boolean值作為條件對結果進行檢測。Boolean值可以從Boolean對象中獲得相關的屬性和方法,也可以通過Boolean對象的相關方法將Boolean值轉換成字符串。

1.創建Boolean對象

Boolean對象是JavaScript的一種基本數據類型,是一個把布爾值打包的布爾對象,可以通過Boolean對象創建新的Boolean值。

語法格式:

    boolObj=new Boolean([boolValue])

參數說明:

boolObj:要賦值為Boolean對象的變量名。

boolValue:可選項,表示新對象的初始Boolean值。如果忽略boolValue,或者其值為false、0、null、NaN及空字符串,則該Boolean對象的初始值為false;否則,初始值為true。

說明

Boolean對象是Boolean數據類型的包裝器。每當Boolean數據類型轉換為Boolean對象時,JavaScript都隱式地使用Boolean對象,很少會顯式地調用Boolean對象。

【例6.7】 創建Boolean對象。(實例位置:資源包\TM\sl\6\07)

代碼如下:

    BoolObj1=new Boolean(false);
    BoolObj2=new Boolean(0);
    BoolObj3=new Boolean(null);
    BoolObj4=new Boolean("");
    BoolObj5=new Boolean();
    BoolObj6=new Boolean(1);
    BoolObj7=new Boolean(true);
    document.write(BoolObj1+"<br>");
    document.write(BoolObj2+"<br>");
    document.write(BoolObj3+"<br>");
    document.write(BoolObj4+"<br>");
    document.write(BoolObj5+"<br>");
    document.write(BoolObj6+"<br>");
    document.write(BoolObj7+"<br>");

運行結果如圖6.10所示。

圖6.10 創建Boolean對象

2.Boolean對象的屬性

Boolean對象有constructor和prototype兩個屬性,下面分別進行介紹。

(1)constructor屬性

constructor屬性用于對當前對象的函數進行引用。

例如,判斷當前對象是否為布爾對象。代碼如下:

    var newBoolean=new Boolean();
    if(newBoolean.constructor==Boolean)
         document.write("布爾型對象");

運行程序,由于對象newBoolean是布爾對象,因此頁面會顯示“布爾型對象”,如圖6.11所示。

圖6.11 判斷是否為Boolean對象

(2)prototype屬性

prototype屬性可以為對象添加屬性和方法。

例如,用自定義屬性,并為其屬性賦值。代碼如下:

運行程序,會在頁面中彈出自定義的屬性值,如圖6.12所示。

圖6.12 彈出自定義屬性值

3.Boolean對象的方法

Boolean對象有toString()和valueOf()兩個方法,下面對其進行介紹。

(1)toString()方法

toString()方法用于將Boolean值轉換成字符串。

語法格式:

    BooleanObject.toString()

參數說明:

返回值:BooleanObject的字符串表示。

例如,將Boolean對象的值轉換成字符串,代碼如下:

運行結果:

    true

(2)valueOf()方法

valueOf()方法用于返回Boolean對象的原始值。

語法格式:

    BooleanObject.valueOf()

參數說明:

返回值:BooleanObject的字符串表示。

例如,獲取Boolean對象的值,代碼如下:

    var newBoolean=new Boolean();
    newBoolean=true;
    document.write(newBoolean.valueOf());

運行結果:

    true
主站蜘蛛池模板: 仲巴县| 西平县| 台南市| 九江县| 文水县| 大庆市| 宾阳县| 嫩江县| 乌鲁木齐市| 宜兰市| 太仆寺旗| 军事| 南宫市| 澎湖县| 黔东| 潞西市| 邵阳县| 松江区| 甘泉县| 苏州市| 偃师市| 楚雄市| 琼中| 巫山县| 谷城县| 双城市| 华池县| 芜湖县| 正宁县| 尉犁县| 神木县| 梧州市| 和硕县| 阳谷县| 贵溪市| 张家港市| 枣阳市| 张家口市| 会理县| 高清| 大渡口区|