1. 程式人生 > >js資料型別-Number

js資料型別-Number

js的幾種原始資料型別:Undefined、Null、Boolean、Number、string。
可以用typeof運算子判斷一個值是否表示一個原始型別,返回值型別與其變數值型別一致,。
JavaScript中的所有事物都是物件:數字、字串、布林、陣列、日期等等。
Number物件是原始數值的包裝物件,建立Number物件的語法:

var Num=new Number(value);

返回值:當Number()和運算子new一起作為建構函式使用時,它返回一個新建立的Number.

var Num=Number(value);

返回值:當Number()作為呼叫函式使用時,它將自己的引數轉成一個原始的數值,並返回這個值,如果轉換失敗就返回NaN.
引數value是要建立的Number物件的數值,或者是要專程數字的值。

<script type="text/javascript" language="JavaScript">
    var num=1;
    var num1=Number(1);
    var num2=new Number(1);
    
    alert(num==num1);//true
    alert(num==num2);//true
    alert(num1==num2);//true
      //  ==表示只是值相等
    
    alert(typeof (num));//number
    alert(typeof num1);//number
    alert(typeof num2);//object
    
    alert(num===num1);//true
    alert(num===num2);//false
    alert(num1===num2);//false
    //    ===表示值和型別都相同
</script>

javascript數字可以使用也可以不使用小數點來書寫:

var pi=3.14;//使用小數點
var x=34;//不使用小數點

極大數字或極小數字可通過科學計數法來寫:

var y=123e5;//12300000
var z=123e-5;//0.00123

所有的JavaScript數字均為64位
JavaScript不是型別語言。與其他程式語言不同,JavaScript不定義不同型別的數字,比如整數,短、長浮點等等。
JavaScript中的所有數字均儲存為根為10的64位(8位元),浮點數。
精度
整數(不使用小數點或指數計數法)最多為15位。
小數的最大位數是17,但是浮點運算並不總是100%準確:
var x=0.2+0.1;

//0.30000000000000004(17位)

八進位制和十六進位制
如果字首為0,則JavaScript會把數值常量解釋為八進位制數,如果字首為”0x”,則解釋為十六進位制數。

var y=0377;
var z=0xFF;

alert(0.1+0.2);//0.30000000000000004精度為17位
alert(0377);//255;字首為0表示是8進位制,輸出時強制轉化為十進位制
alert(0xFF);//255

數字Number的屬性

  • constructor
  • MAX_VALUE 最大數
  • MIN_VALUE 最小數
  • NaN 非數字
  • NEGATIVE_INFINITY 負無窮大,溢位時返回
  • POSITIVE_INFINITY 正無窮大,溢位時返回

數字Number的方法

  • toString() 把數字轉換為字串,使用指定的基數
<script type="text/javascript" language="JavaScript">
        
            var num=123;
            alert(num.constructor);//輸出:function Number() { [native code] }
            alert(Number);//輸出:function Number() { [native code] }
            alert(num.constructor===Number);//true
        
            alert(Number.MAX_VALUE);//最大值1.7976931348623157e+308
            alert(Number.MIN_VALUE);//最小值5e-324
        
            alert(NaN);//NaN是一個特殊的數字;每一個NaN都是一個不同的特殊的數字;所以NaN==NaN返回是false
        
            alert(typeof (NaN));//number
        
            alert(Number.NEGATIVE_INFINITY);//-INFINITY表示負無窮大
            alert(-1/0);//-Infinity;
            alert(Number.POSITIVE_INFINITY);//INFINITY表示正無窮大
        
            alert('a'-'b');//NaN
            isNaN();//是不是NaN這個數,返回值是Boolean
            alert(isNaN(NaN));//isNaN()只要引數不是NaN返回false,否則返回true
        	alert(num.toString());//返回字串‘123’
            alert(typeof (num.toString()));//string
        
        </script>