JavaScript Number 对象
- JavaScipt中的所有事务都是对象
- 对象是一种特殊的数据,对象拥有属性和方法。
如何创建一个JavaScript的对象
【1】定义并创建对象的实例
使用函数来定义对象,然后创建新的对象实例
创建对象的实例举例:
使用函数来创建对象:
创建对象实例
JavaScript Number对象
JavaScript数字
1.JavaScript 只有一种数字类型。JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。在JavaScript中,数字不分为整数类型和浮点型类型,所有的数字都是由 浮点型类型。
2.可以使用也可以不使用小数点来书写数字。
var pi=3.14; // 使用小数点 var x=34; // 不使用小数点
//极大的数字可以使用科学计数的方式
var y=123e5; // 12300000
var z=123e-5; // 0.00123
3.JavaScript的数字均为64位
- 最大值:±1.7976931348623157 x 10308
- 最小值:±5 x 10 -324
4.JavaScript数字的精度
var x = 999999999999999; // x 为 999999999999999 var y = 9999999999999999; // y 为 10000000000000000
小数的最大位数是 17,但是浮点运算并不总是 100% 准确:
var x = 0.2+0.1; // 输出结果为 0.30000000000000004
5.JavaScript的八进制和十六进制
如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。
var y = 0377; var z = 0xFF;
Number 对象是原始数值的包装对象。
Number 创建方式 new Number()。
语法:
var num = new Number(value);
注意: 如果一个参数值不能转换为一个数字将返回 NaN (非数字值)。
对象的属性
constructor:返回对创建此对象的 Number 函数的引用。
说明:
constructor 属性返回对创建此对象的 Boolean 函数的引用。
语法:
number.constructor返回值:
函数对象. 创建此对象的 Number 函数的引用
<script type="text/javascript"> var num = new Number(3.14); alert(num.constructor) </script> 输出结果: function Number() { [native code] }
MAX_VALUE:表示做大的数
说明:
MAX_VALUE 属性是 JavaScript 中可表示的最大的数。
它的近似值为 1.7976931348623157 x 10308。
注意:大于MAX_VALUE的数表示无穷大。
MIN_VALUE 是 Javascript Number 对象的静态属性,所以调用该属性的方法为: Number.MIN_VALUE.
使用自定义的 Number对象 x 调用该属性(x.MIN_VALUE),将返回 undefined:
var x = 100; x.MIN_VALUE; 输出结果: undefined
语法:
Number.MAX_VALUE返回值:
最大数值, 1.7976931348623157e+308
<body> <p id='demo'>点击按钮后经获取最大的值</p> <button onclick="get_max()" value="点击后获取最大值">点击后获取最大值</button> <script type="text/javascript"> function get_max(){ document.getElementById('demo').innerHTML = Number.MAX_VALUE; } </script> </body>
1.7976931348623157e+308
MIN_VALUE:可表示的最小的数。
说明:
MIN_VALUE 属性是 JavaScript 中可表示的最小的数(接近 0 ,但不是负数)。它的近似值为 5 x 10-324。
注意: 比 MIN_VALUE 属性小的数将用 0 表示。
注意: MIN_VALUE 是 JavaScript 最接近0的数,不是负值,负值属性为 MAX_NUMBER。
MIN_VALUE 是 Javascript Number 对象的静态属性,所以调用该属性的方法为: Number.MIN_VALUE.
使用自定义的 Number对象 x 调用该属性(x.MIN_VALUE),将返回 undefined:
var x = 100; x.MIN_VALUE; 输出结果 undefined
语法:
Number.MIN_VALUE返回值:
A Number, 5e-324
<script type="text/javascript"> document.write(Number.MIN_VALUE); </script>
5e-324
NaN:非数字值
1.NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。
2.可以把 Number 对象设置为该值,来指示其不是数字值。
3.提示: 请使用 isNaN() 全局函数来判断一个值是否是 NaN 值。
语法:
Number.NaN返回值:
NaN
<script type="text/javascript"> document.write(Number.MIN_VALUE); alert(Number.NaN); // NaN </script>
POSITIVE_INFINITY:正无穷大,溢出时返回该值。
说明:
POSITIVE_INFINITY 属性值代表正无穷大。
POSITIVE_INFINITY 属性表示大于 Number.MAX_VALUE 的值。
注意:
POSITIVE_INFINITY 是 JavaScript Number 对象的静态方法。
调用方法为: Number.POSITIVE_INFINITY.
使用自定义的Number对象 x 调用该属性(x.POSITIVE_INFINITY)将返回 undefined:
语法:
Number.POSITIVE_INFINITY;
返回值:
The numeric value: Infinity
<body> <p id='demo'>显示正无穷大的数值</p> <button onclick="get_data()">按钮</button> <script type="text/javascript"> //单击显示正无穷大的数值 function get_data(){ var demo = document.getElementById('demo'); demo.innerHTML=Number.POSITIVE_INFINITY; }; </script> </body>
prototype:允许您有能力向对象添加属性和方法。
说明:
prototype 属性允许您向对象添加属性和方法。
当构造一个属性, 所有的 Number 对象将被添加上该属性及值。
当构造一个方法时,所有的 Number 对象都会有这个方法。
注意: Number.prototype 不允许引用一个单独的 Number 对象,但是可以使用 Number() 对象。
注意:prototype 型是一个全局对象的构造函数,可用于所有的JavaScript对象
语法:
object.prototype.name=value实例:
<body> <!-- 给Number对象添加一个方法返回数值的一半 --> <script type="text/javascript"> Number.prototype.myMet=function(){ this.myProp=this.valueOf()/2; } var n = new Number(55); n.myMet(); var x = n.myProp; alert(x)//27.5 </script> </body>
对象的方法
toExponential(x):把对象的值转换为指数计数法。
说明:
toExponential() 方法可把对象的值转换成指数计数法。
语法:
number.toExponential(x)参数:
可选。规定指数计数法中的小数位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将使用尽可能多的数字。
number.toExponential(x)返回值:String
返回 Number Object 的字符串表示,采用指数计数法,即小数点之前有一位数字,小数点之后有 num 位数字。该数字的小数部分将被舍入,必要时用 0 补足,以便它达到指定的长度。
<body> <p id="demo">显示数值的指数</p> <button onclick="get_date()">1000</button> <script type="text/javascript"> function get_date(){ var num=1000.234567; var x = document.getElementById('demo'); x.innerHTML = num.toExponential();//1e+3 // 注意小数点得位数 x.innerHTML = num.toExponential(3);//1.000e+3 } </script> </body>
toFixed(x):把数字转换为字符串,结果的小数点后有指定位数的数字。(四舍五入)
说明:
toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
语法:
number.toFixed(x)参数:x
必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。
返回值:String
小数点后有固定的 x 位数字
<p id='demo'>根据需求获取小数得位数</p> <button onclick="change_date()">点击</button> <script type="text/javascript"> function change_date(){ var num = 3.13445; var change = document.getElementById('demo'); change.innerHTML = num.toFixed(2); // 3.13 // 将一个数字,不留任何小数: change.innerHTML = num.toFixed(); // 3 // 转换一个比指定数小的小数点后的位数的数字: change.innerHTML = num.toFixed(10); // 3.1344500000 } </script> </body>
toPrecision(x):把数字格式化为指定的长度。
说明:
toExponential() 方法可把对象的值转换成指数计数法。
语法
number.toPrecision(x)参数:x
必需。规定必须被转换为指数计数法的最小位数。该参数是 1 ~ 21 之间(且包括 1 和 21)的值。有效实现允许有选择地支持更大或更小的 num。如果省略了该参数,则调用方法 toString(),而不是把数字转换成十进制的值。
返回值:
指定精度的数字格式
<script type="text/javascript"> var num = new Number(13.3714); var a = num.toPrecision(); var b = num.toPrecision(2); var c = num.toPrecision(3); var d = num.toPrecision(10); document.write(a,'---',b,'---',c,'---',d);
//13.3714---13---13.4---13.37140000 </script> </body>
toString():把数字转换为字符串,使用指定的基数。
说明:
数字的字符串表示。例如,当 radix 为 2 时,NumberObject 会被转换为二进制值表示的字符串。
语法:
number.toString(radix)参数:radix
可选。规定表示数字的基数,使 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值。
- 2 - 数字以二进制值显示
- 8 - 数字以八进制值显示
- 16 - 数字以十六进制值显示
返回值:
把数字转换为字符串
<body> <script type="text/javascript"> var num = 15; var a = num.toString(); var b = num.toString(2); var c = num.toString(8); var d = num.toString(16); // alert(a,'---',b,'---',c,'---',d); document.write(a,'---',b,'---',c,'---',d); //15---1111---17---f </script> </body>
valueOf():返回一个 Number 对象的基本数字值。
说明:valueOf() 方法可以字符串返回数字。
语法:
number.valueOf()返回值:
一个数值得原始数值
<body> <p id='demo'>valueof()方法测试</p> <button onclick="get_value()">点击</button> <script type="text/javascript"> function get_value(){ var num = 15; var x = document.getElementById('demo'); x.innerHTML = num.valueOf(); } </script> </body>