1. Number对象

1.1. Number是对原始数字的包装对象。

1.2. 创建Number对象的语法:

var myNum = new Number(value);

1.3. 参数value是要创建的Number对象的数字。

1.4. 当Number()和运算符new一起作为构造函数使用时, 它返回一个新创建的Number对象。

2. Number对象属性

3. Number对象方法

4. 使用字面量创建数和Number对象创建数

4.1. 使用字面量创建数字和Number对象创建数字

var num1 = new Number(10); //  使用Number对象创建数字
var num2 = 10; //  使用字面量创建数字

4.2. 使用字面量创建数和Number对象创建数的不同

4.2.1. 使用字面量创建数字是原始值, 储存在栈中。

4.2.2. 使用Number对象创建数字是对象(引用类型), 储存在堆中。

4.2.3. 使用字面量创建数字和Number对象创建数字的内存结构:

4.2.4. 使用Number对象创建数字比使用字面量创建数字复杂的多(就是因为Number对象多执行了一个Number()构造函数), 执行效率低, 因此我们通常使用字面量创建数字。

4.2.5. 使用==运算符判断使用字面量和Number对象创建的相同值的数字是否相等时, 结果是true, 因为数值相同。

4.2.6. 使用===运算符判断使用字面量和Number对象创建的相同值的数字是否相等时, 结果是false, 因为虽然数值相同, 但类型不同, 一个是数字, 一个是对象。

5. 数字原始值可以使用Number对象的属性和方法

5.1. 数字原始值, 比如10, 无法拥有属性和方法, 因为它们不是对象。

5.2. 但是通过JavaScript, Number对象的属性和方法也可用于原始数字, 因为在执行属性和方法时 JavaScript将原始数字视为伪对象。

6. Number构造函数还有5个用作数字常量的占位符。这5个常量分别是MAX_VALUE(最大数)、MIN_VALUE(最小数)、POSITIVE_INFINITY(正无穷大)、NEGATIVE_INFINITY(负无穷大)和特殊的NaN(not a number)值。注意, 这些值是构造函数Number()自身的属性, 而不是单独的某个Number对象的属性。

var num1 = new Number(10);
var num2 = 10;// 正确使用
document.write('Number.MAX_VALUE = ' + Number.MAX_VALUE + '<br />');
document.write('Number.MIN_VALUE = ' + Number.MIN_VALUE + '<br />');
document.write('Number.NaN = ' + Number.NaN + '<br />');
document.write('Number.NEGATIVE_INFINITY = ' + Number.NEGATIVE_INFINITY + '<br />');
document.write('Number.POSITIVE_INFINITY = ' + Number.POSITIVE_INFINITY + '<br />');// 错误使用
document.write('num1.MAX_VALUE = ' + num1.MAX_VALUE + '<br />');
document.write('num1.MIN_VALUE = ' + num1.MIN_VALUE + '<br />');
document.write('num1.NaN = ' + num1.NaN + '<br />');
document.write('num1.NEGATIVE_INFINITY = ' + num1.NEGATIVE_INFINITY + '<br />');
document.write('num1.POSITIVE_INFINITY = ' + num1.POSITIVE_INFINITY + '<br />');document.write('num2.MAX_VALUE = ' + num2.MAX_VALUE + '<br />');
document.write('num2.MIN_VALUE = ' + num2.MIN_VALUE + '<br />');
document.write('num2.NaN = ' + num2.NaN + '<br />');
document.write('num2.NEGATIVE_INFINITY = ' + num2.NEGATIVE_INFINITY + '<br />');
document.write('num2.POSITIVE_INFINITY = ' + num2.POSITIVE_INFINITY + '<br />');

7. Number对象重写了Object对象的constructor: ƒ Number()属性, 和toLocaleString()、toString()、valueOf()这三个方法。

8. toLocaleString()方法

8.1. toLocaleString()方法可把一个Number对象转换为本地格式的字符串。

8.2. 语法

numberObject.toLocaleString()

8.3. 返回数字的字符串表示, 由实现决定, 根据本地规范进行格式化, 可能影响到小数点或千分位分隔符采用的标点符号。

9. valueOf()方法

9.1. valueOf()方法返回Number对象的原始值。

9.2. 语法

numberObject.valueOf()

10. 例子

10.1. 代码

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8" /><title>Number对象</title></head><body><script type="text/javascript">var num1 = new Number(3.1415926);var num2 = 3.1415926;document.write('num1 = ' + num1 + '<br />');document.write('num2 = ' + num2 + '<br />');document.write('(num1 == num2) = ' + (num1 == num2) + '<br />');document.write('(num1 === num2) = ' + (num1 === num2) + '<br />');document.write('(num1.valueOf() === num2) = ' + (num1.valueOf() === num2) + '<br />');document.write('(typeof num1) = ' + (typeof num1) + ', (typeof num1.valueOf()) = ' + (typeof num1.valueOf()) + '<br />');document.write('(typeof num2) = ' + (typeof num2) + ', (typeof num2.valueOf()) = ' + (typeof num2.valueOf()) + '<hr />');document.write('(num1.toString() === num2.toString()) = ' + (num1.toString() === num2.toString()) + '<br />');document.write('(typeof num1) = ' + (typeof num1) + ', (typeof num1.toString()) = ' + (typeof num1.toString()) + ', (num1.toString()) = ' + num1.toString() + '<br />');document.write('(typeof num2) = ' + (typeof num2) + ', (typeof num2.toString()) = ' + (typeof num2.toString()) + ', (num2.toString()) = ' + num2.toString()  + '<br />');document.write('(num1.toLocaleString() === num2.toLocaleString()) = ' + (num1.toLocaleString() === num2.toLocaleString()) + '<br />');document.write('(typeof num1) = ' + (typeof num1) + ', (typeof num1.toLocaleString()) = ' + (typeof num1.toLocaleString()) + ', (num1.toLocaleString()) = ' + num1.toLocaleString() + '<br />');document.write('(typeof num2) = ' + (typeof num2) + ', (typeof num2.toLocaleString()) = ' + (typeof num2.toLocaleString()) + ', (num2.toLocaleString()) = ' + num2.toLocaleString()  + '<hr />');document.write('Number.MAX_VALUE = ' + Number.MAX_VALUE + '<br />');document.write('Number.MIN_VALUE = ' + Number.MIN_VALUE + '<br />');document.write('Number.NaN = ' + Number.NaN + '<br />');document.write('Number.NEGATIVE_INFINITY = ' + Number.NEGATIVE_INFINITY + '<br />');document.write('Number.POSITIVE_INFINITY = ' + Number.POSITIVE_INFINITY + '<br />');</script></body>
</html>

10.2. 效果图

049_Number对象相关推荐

  1. java_B站_面试题

    Java面向对象有哪些特征,如何应用 ​ 面向对象编程是利用类和对象编程的一种思想.万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间有不同的关系 ,一个类自身与外界的封装关系,一个父类和子类的 ...

  2. 史上最详细的23中设计模式解析,一个不落,理论搭配简单案例,更好理解哦

    目录 一.软件设计模式的产生背景 二.软件设计模式的概念与意义 1. 软件设计模式的概念 2. 学习设计模式的意义 三.23 种设计模式的分类和功能 1. 根据目的来分 2. 根据作用范围来分 3. ...

  3. 在kotlin companion object中读取Bean,注入Bean对象

    在kotlin companion object中读取Bean,注入Bean对象 在使用kotlin时,或多或少地会使用到一些公共组件,如 http. mongo. redis相关的组件.   使用组 ...

  4. IDEA自动生成对象所有set方法

    idea中有一款插件能够生成对象所有的set方法,GenerateAllSetter :下载地址 步骤1:将下载好的压缩包放在自己记得的文件夹中,在idea中进行导入 步骤2:在本地选中刚才的压缩包, ...

  5. 基于Golang的对象序列化的程序包开发——myJsonMarshal

    基于Golang的对象序列化的程序包开发--myJsonMarshal[阅读时间:约10分钟] 一.对象序列化概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体程序设计及 ...

  6. java 捕获异常并存入数据库_java异常处理,报异常的话怎么处理对象值,并持久化到数据库中...

    展开全部 //没看到有人回e68a843231313335323631343130323136353331333365646233答你,我还没学到框架,不知道那个是不是可以很便捷操作你说的这样过程 / ...

  7. python程序如何执行死刑图片_如何判断对象已死

    已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...

  8. Go 学习笔记(64)— Go error.New 创建接口错误对象、fmt.Errorf 创建接口错误对象、errors.Is 和 errors.As

    1. error 接口定义 除用 panic 引发中断性错误外,还可返回 error 类型错误对象来表示函数调用状态.error 接口是 Go 原生内置的类型,它的定义如下: // $GOROOT/s ...

  9. OpenCV 笔记(06)— Mat 结构、像素值存储方法、创建 Mat 对象各种方法、Mat 对象的运算

    数字图像中的每个点都称为像素(对于图像元素),并且每个像素可以存储一个或多个值,这取决于它是否是仅存储一个值的黑白图像(也称为二进制图像,比如只存储0或1),还是存储两个值的灰度图像,或者是存储三个值 ...

最新文章

  1. NodeJS http服务端获取POST请求数据
  2. 如何获得github的oauth access token
  3. 专业的软件安装包可以这样做!
  4. jdk1.7 String switch的实现
  5. 打造大数据和AI能力底座 联通大数据深度参与“新基建”
  6. python request和urllib_requests和urllib.request的区别是什么?
  7. (16)Verilog HDL常量:数值表示
  8. Codeforces Round #533 (Div. 2) 部分题解A~D
  9. 36家健康类公益组织联名举报百度
  10. mysql服务器磁盘空间耗尽_一次服务器磁盘空间不足导致的一系列问题
  11. JavaScript高级教程(函数进阶、闭包、正则表达式、ES6新增语法、新增扩展方法)
  12. 成为一名初级游戏策划
  13. 我的Python网路爬虫学习之路--1
  14. IDA遇到mojava,crash的情况
  15. leetcode-739.每日温度-单调栈
  16. Xman pwn level2 writeup
  17. oracle常见语句(转载)
  18. 网上书店系统/书店管理系统的设计与实现
  19. 海湾汉字编码表全部_汉字unicode码表范围和常用汉字unicode码
  20. 让按钮变灰色,不可用/

热门文章

  1. 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——3.3 小结...
  2. JavaScript模块化开发整理
  3. 取得COM对象的UUID并以string输出
  4. SQL Server 备份与恢复之四:备份类型和选项
  5. Windows 7 几个小问题的解决方法(二)
  6. 什么是延迟?怎样解决?—Vecloud微云
  7. 无法删除当前已连接的用户处理办法
  8. Oracle中dbms_job包的使用
  9. Windows远程桌面
  10. Unity OBB分包(基础APK+OBB) 与apk签名