Javascript (ECMA Script)係一種網頁設計弱類型既語言.這並不意味著它無數據類型,只係變量或者Javascript對象屬性唔需要一個特定類型既值分配比佢使用相同的值.Javascript中既變量同樣支持自由類型轉換成為適用(或者要求)既內容以方便使用.

弱類型既Javascript唔會按照程式員既願望從實際既變量類型到所需要的數據類型轉換,例如一個非常常見既錯誤,系瀏覽器腳本入面,從表單控件中獲取用戶將要輸入的一個數值類型的變量與另一個數值變量的和.因為變量類型在表單控件中是字符串類型(計時字符串序列包含一個數字)呢種嘗試會加左那個字符串到變量,就算呢d值碰巧係一d數字,結果系第二個變量將會被轉換為字符串類型,系最後只會從表單控件中得到既變量添加到第一個字符串末尾。

所以強制類型轉換都係比較重要,下面看一下佢幾個強制轉換既函數:

1. Boolean(value):把值轉換成Boolean類型;

2. Nnumber(value):把值轉換成數字(整型或浮點數);

3. String(value):把值轉換成字符串。

我們先來看Boolean():在要轉換既值為“至少有一字符的字符串”、“非0的數字”或“對象”,那麼Boolean()將返回true,如果要轉換既值為“空字符串”、“數字0”、“undefined”,“null”呢d話,咁Boolean()會返回false。你可以用以下代碼試下

以下為引用的內容:

  var t1 = Boolean("");//返回false,空字符串
var t2 = Boolean("s");//返回true,非空字符串
var t3 = Boolean(0);//返回false,數字0
var t3 = Boolean(1),t4 = Boolean(-1);//返回true,非0數字
var t5 = Boolean(null),t6 = Boolean(undefined);//返回false
var t7 = Boolean(new Object());//返回true,對象


再來睇睇Number():Number()與parseInt()和parseFloat()類似,分別在於Number()轉換係整個值,而parseInt()和parseFloat()則可以只轉換開頭果d數字部分,例如:Number("1.2.3"),Number("123abc")會返回NaN,而parseInt("1.2.3")返回1、parseInt("123abc")返回123、parseFloat("1.2.3")返回1.2、parseFloat("123abc")返回123。Number()會先判斷要轉換既值能否被轉換,然後再判斷係調用parseInt()或parseFloat()。下面列了一d值調用Number()之後既結果:

以下為引用的內容:

Number(false)  0
Number(true)  1
Number(undefined)  NaN
Number(null)  0
Number("1.2")  1.2

Number("12")  12
Number("1.2.3")  NaN
Number(new Object())  NaN
Number(123)  123

最後係String():這個已經比較簡單架勒,可以將所有類型既數據轉換成字符串,如:String(false)---"false"、String(1)---"1"。它同toString()方法有d不同,區別在於:

以下為引用的內容:

  var t1 = null;
var t2 = String(t1);//t2的值 "null"
var t3 = t1.toString();//這裡會報錯
var t4;
var t5 = String(t4);//t5的值 "undefined

arrow
arrow
    全站熱搜

    dettori 發表在 痞客邦 留言(0) 人氣()