JavaScript标准库- Number对象

Number对象是数值对应的包装对象,可以作为构造函数使用,也可以作为工具函数使用。

 - 作为构造函数时用于生成值为数值的对象
	let num = new Number(1);
	typeof num; // 'object'

- 作为工具函数时,它可以将任何类型的值转为数值
	Number('a'); //NaN
    Number(true); //1
    Number('123'); //123

静态属性

- Number对象拥有以下一些静态属性(即直接定义在Number对象上的属性,而不是定义在实例上的属性)。
	Number.POSITIVE_INFINITY // Infinity  正的限,指向Infinity
    Number.NEGATIVE_INFINITY // -Infinity 负的无限,指向-Infinity
    Number.NaN // NaN  表示非数值,指向NaN

    Number.MAX_VALUE
    // 1.7976931348623157e+308   
    Number.MAX_VALUE < Infinity
    // true

    Number.MIN_VALUE //表示最小的正数,即最接近0的正数;- Number.MIN_VALUE最接近0的负数
    // 5e-324
    Number.MIN_VALUE > 0
    // true

    Number.MAX_SAFE_INTEGER // 9007199254740991 表示能够精确表示的最大整数 
    Number.MIN_SAFE_INTEGER // -9007199254740991 表示能够精确表示的最小整数 


实例方法

- toString(): 它能将十进制的数,转为其它进制的字符串. 如果需要将其它进制的数转回十进制,需要使用parseInt()方法
 *  他可以接受一个参数表示输出的进制
	(10).toString(); // '10'
	(10).toString(2);// '1010' 将10转换成2进制字符串
	
	(10).toString()也可以写成下面的方式:
	10..toString(); //Js会把第一个点看成小数点,第二个点理解成调用对象属性
	10 .toString();
	10.0.toString()
	10['toString']();

- Number.prootype.toFixed():先将一个数转为指定位数的小数,然后返回这个小数的对应的字符串
	(10).toFixed(2);// '10.00'
	// 参数的有效范围为0-100
	// 由于四舍五入是不确定的,使用的时候必须非常小心

- Number.prototype.toExponential():用于将一个数转为科学计数法形式
	(10).toExponential(); // '1e+1'
	(10).toExponential(1); // '1.0e+1'

- Number.prototype.toPrecision():用于将一个数转为指定位数的有效数字
	(1234).toPrecision(2);//'1.2e+3'
    (1234).toPrecision(4);// '1234'
    (1234).toPrecision(5);// '1234.0'
	(1.256).toPrecision(2);// '1.3'
	(1.246).toPrecision(2);//'1.2' 它的四舍五入不可靠,跟浮点数不是精确储存有关

- Number.prototype.toLocaleString():该方法接受一个地区码作为参数,返回一个字符串,表示当前数字在该地区的当地书写形式
	(123).toLocaleString('zh-Hans-CN-u-nu-hanidec') //'一二三'
    let nowTime = new Date();  
    nowTime.toLocaleString(); //'2021/4/4 下午6:01:47'
	
	// 它还接受第二参数:用来定制指定用途的返回字符号,该对象的style属性指定输出样式,默认值是decimal,表示输出十进制形式。如果值为percent,表示输出百分数。
	(123).toLocaleString('zh-Hans-CN', { style: 'percent' }); // "12,300%"
	(123).toLocaleString('zh-Hans-CN',{style:'currency',currency: 'CNY' })// currency 可以是CNY人民币 EUR欧元 USD美元
	
	// 如果Number.prototype.toLocaleString()省略了参数,则由浏览器自行决定如何处理,通常会使用操作系统的地区设定。注意,该方法如果使用浏览器不认识的地区码,会抛出一个错误。

- 自定义方法:与其他对象一样,Number.prototype对象上面可以自定义方法,被Number的实例继承
	Number.prototype.adds = function (x){
      return this + x;
    };
    (10).adds(10); // 20
    Number.prototype.reduces = function (x){
      return this - x;
    };
    (10).adds(12).reduces(4); //18  可以链式运算

	// 数值的自定义方法,只能定义在它的原型对象Number.prototype上面,数值本身是无法自定义属性的
	
	let n = 1;
    n.x = 1;
    n.x // undefined
	// n是一个原始类型的数值。直接在它上面新增一个属性x,不会报错,但毫无作用,总是返回undefined。这是因为一旦被调用属性,n就自动转为Number的实例对象,调用结束后,该对象自动销毁。所以,下一次调用n的属性时,实际取到的是另一个对象,属性x当然就读不出来
	

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中小余

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值