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>