Number类型的值:整数/浮点数值

整数

十进制  e.g.: var intNum = 50;

八进制  (严格模式下无效,解析错误)字面值首位必须是0,之后的数字序列为0~7  e.g.: var intNum = 070; //解析为十进制56 (如果字面值数值超出了范围,前导0将被忽略,后面的数值将被当做十进制数值解析 e.g.: var intNum = 078; //无效的八进制数字,解析为十进制78)

十六进制  字面值的前两位必须是0x(或0X),之后的数据序列为0~7或A~F(可大写,亦可小写)  e.g.:var intNum = 0xA; //解析为十进制10

算数计算时,所有以八进制和十六进制表示的数值最终都会转换成十进制数值计算

浮点数

数值中必须包含一个小数点,且小数点后面必须至少有一个数字 e.g.: var floatNum = 1.5;(小数点前面可以没有整数,e.g.: var floatNum = .5; //有效,解析为0.5,但不推荐)

如果小数点后面没有数字,将被解析为整数值 e.g.: var floatNum = 5.; //解析为整数5 (因为浮点数保存需要的内存空间是整数保存的两倍,ECMAScript会不失时机地将浮点数值转为整数值)

科学计数法  极大或极小的数值可附加e(或E)来表示,等同于e前面的数值乘以10的指数次幂

数值范围

最大值:Number.MAX_VALUE 1.7976931348623157e+308

最小值:Number.MIN_VALUE 5e-324

超出最值,自动转换成Infinity/-Infinity  无穷值无法参与计算 (Number.POSITIVE_INFINITY/Number.NEGATIVE_INFINITY也分别保存着Infinity/-Infinity)

判断是否是有穷值  isFinite(arg)  arg可以为任何类型的数据,非Number数据将隐式转换成Number数据

NaN

非数值(Not a Number)保存一个本来要返回数值但未返回数值的数据 如任何数值除以0,返回NaN

任何与NaN的操作都会返回NaN

NaN与任何值都不想等,包括NaN本身

判断是否未NaN  isNaN(arg)  arg可以为任何类型的数据,非Number数据将隐式转换成Number数据

数值转换

Number()/parseInt()/parseFloat()

Number()可用于任何数据类型转换成数值    parseInt()/parseFloat()一般用于字符串转换成数值

Number()转换规则:

Boolean    true-->1    false-->0

Number    返回本身

null          0

undefined NaN

String       a/只包含数字(包括前面带正好或符号)-->十进制数值 (前导为0的忽略0,不会转换成八进制/前导为0x的,转换为十六进制大小的十进制)

b/只包含浮点-->对应的浮点数值(前导0被忽略)

c/只包含空字符串-->0

d/包含其他字符-->NaN

parseInt()转换规则:(正因为Number()处理字符串转换过于复杂,一般字符串转换用parseInt()比较好)

主要看其是否符合数值模式

忽略字符串前面的空格,直到找到第一个非空格字符

a/第一个字符不是数字或正负号-->NaN  e.g.:parseInt("abcd")-->NaN  e.g.:parseInt("")-->NaN(区别Number("")-->0)

b/第一个字符是数字字符,顺序解析第二个,直到解析完所有字符或遇到非数字字符结束-->已成功解析为数字的数字字面量 e.g.:parseInt("1234blue")-->1234

c/能够解析Number类型的整数的各种格式:十进制/八进制/十六进制(parseInt()可以传递第二个参数:多少进制;十六进制可以不带前面的0x,推荐传递带两个参数的方式) e.g.:parseInt("0xA")-->10    parseInt("A", 16)-->10

 parseFloat()转换规则:

类似parseInt()

字符中有两个以上的小数点时,第一个小数点有效,第二个之后都无效,且后面的字符被忽略  e.g.:parseFloat("11.22.33")-->11.22

只解析十进制格式字符串,没有第二个参数指定转换方式

十六进制格式字符串-->0 e.g.:parseFloat("0xA")-->0

没有小数点的整数字符串-->整数 e.g.:parseFloat("1234blue")-->1234

科学计数法 e.g.:parseFloat("3.14e2")-->314

[javascript|基本概念|Number的更多相关文章

  1. JavaScript基本概念(二)

    JavaScript 基本概念(二) 操作符和语句 目录 操作符 一元操作符 位操作符 布尔操作符 乘性操作符 其他操作符 语句部分 说起操作符,回忆下上一篇文章末尾说的话. 操作符 一元操作符 ++ ...

  2. JavaScript的概念,引入,基本数据类型

    08.05自我总结 JavaScript 一.概念 JavaScript(下文我们会用简称JS来代替)是脚本编程语言,JS语言开发的文件是以.js为后缀,通过在html文件中引入该js文件来控制htm ...

  3. 《JavaScript核心概念》基础部分重点摘录

    注:<JavaScript核心概念>适合深入了解JavaScript,比我买的<JavaScript框架设计>语言和内容丰富多了(可能是我水平尚浅吧). 1. 作用域 var ...

  4. ExtJS学习-----------Ext.Number,ExtJS对javascript中的Number的扩展

    关于ExtJS对javascript中的Number的扩展,能够參考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 以 ...

  5. how to convert a number to a number array in javascript without convert number to a string

    how to convert a number to a number array in javascript without convert number to a string 如何在不将数字转换 ...

  6. js-js实现,在HTML中使用JavaScript,基本概念

    Js实现: 1.JavaScript实现的组成: 核心(ECMAScript):由ECMA-262定义,提供核心语言功能 文档对象模型(DOM)提供访问和操作网页内容的方法以及接口 浏览器对象模型(B ...

  7. JavaScript基本概念

    JavaScript概念:JavaScript是一个弱类型语言,而且不要进行编译,是解释性语言.JavaScript最初是为了处理一些相较简单的数据验证,从而减少客户端与服务器端的通信提升效率,发展至 ...

  8. javascript 核心概念(1)-数据类型

    语法 (1)到现在为止,大多数浏览器也还是支持到ECMAScript 第三版的标准. 核心概念就是一个语言的基本工作原理,涉及语法,操作符,数据类型. (2)javascript的一切--变量,函数名 ...

  9. JavaScript对象模型概念

    1.对象的概念 JavaScript只有函数对象才有类的概念,因此创建一个对象,必须使用函数对象.(ES6中可以直接声明一个class,实质上也是一个函数对象). 函数对象的内部有[[Construc ...

  10. Javascript单例模式概念与实例

    前言 和其他编程语言一样,Javascript同样拥有着很多种设计模式,比如单例模式.代理模式.观察者模式等,熟练运用Javascript的设计模式可以使我们的代码逻辑更加清晰,并且更加易于维护和重构 ...

随机推荐

  1. pandas处理数据1

    读文件 pd.read_csv('path/to/file.txt',header=0,names='ab',index_col=0) names Columns这个可以不写,制定索引列是第一列,这样 ...

  2. Linux下的系统调用

    张雨梅   原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-10000 1.linux的的用户态与内核 ...

  3. JQuery 添加节点

    Mark一段自己写的添加节点的代码 function reply2(){ $( "<div class=sec1-div5>"+"<div class= ...

  4. Xcode7 模拟器安装app (转)

    本文转自同事zz的博客http://archerzz.cn/ios/xcode-install-app.html 原由 很多时候,为了学习了解别人的app,很多时候我们是直接拿别人的app安装在自己的 ...

  5. Java四种线程池

    Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor 时间:20 ...

  6. 理解tcp协议的3次握手和面向连接

    1.tcp是有连接的, 这个不是说他有个实际的连接,这个是个虚拟的连接,连接的保持信息不是由连接的路线来保存的,他是由连接的两方来保存其状态信息,这就是面向连接的, 2.tcp要3次握手: 客户端发给 ...

  7. Gevent中的同步与异步详解

    同步,异步概念 1.同步就是发生调用时,一定等待结果返回,整个调用才结束: 2.异步就是发生调用后,立即返回,不等待结果返回.被调用者通过状态.通知来通知调用者,或通过回调函数处理这个调用. 查询 1 ...

  8. 微信微信JS-SDK 6.0.2 填坑笔记

    0.为什么以前不需要配置这么麻烦就可以修改分享description 等信息,但是现在不行了. 因为6.0.2版本之前没有做权限验证,所以config都是ok,但这并不意味着你config中的签名是O ...

  9. javascrpt事件

    1.HTML事件处理程序:就是事件直接写在HTML文档中,其特点就是HTML和Js紧密的结合在一起,缺点就是修改不方便,需要改动js和HTML两处.比如: <button onclick=&qu ...

  10. angularjs不同页面间参数的传递

    1.在路由中定义要接收的参数 .state('userDetails', { url: '/userDetails?phone', //以?为标识接收参数 templateUrl: 'assets/v ...