[javascript|基本概念|Number]学习笔记
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]学习笔记的更多相关文章
- 《零基础学JavaScript(全彩版)》学习笔记
<零基础学JavaScript(全彩版)>学习笔记 二〇一九年二月九日星期六0时9分 前期: 刚刚学完<零基础学HTML5+CSS3(全彩版)>,准备开始学习JavaScrip ...
- 《JavaScript语言精粹》学习笔记
一.in的用法 for...in 枚举一个对象的所有可枚举属性 检测DOM/BOM属性 if ("onclick" in elem) { // 元素支持onclick } if ( ...
- 《JavaScript高级程序设计》学习笔记12篇
写在前面: 这12篇博文不是给人看的,而是用来查的,忘记了什么基础知识,点开页面Ctrl + F关键字就好了 P.S.如果在对应分类里没有找到,麻烦告诉我,以便尽快添上.当然,我也会时不时地添点遗漏的 ...
- 《JavaScript权威指南》学习笔记 第六天 开始学习DOM了。
昨天学习了window对象的一些方法.window对象主要是针对当前视窗的操作.window对象提供了一些列API来帮助我们了解当前窗口的信息.例如history对象可以让我们获取浏览历史.nvaig ...
- 《JavaScript高级程序设计》学习笔记(4)——引用类型
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第五章内容. 在ECMAScript中, ...
- 1 《JavaScript高级程序设计》学习笔记(1)
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 首先,我将从<JavaScript高级程序设计>这本JavaScript学习者必看的经典教 ...
- 《JavaScript权威指南》学习笔记 第五天 window对象的方法。
前天和昨天大致浏览了犀牛书的函数.类与模块.正则表达式.JavaScript扩展.以及服务端的js.这些方面对于我目前的水平来说比较难,一些最基本的概念都不能领会.不过最复杂的知识占用平时使用的20% ...
- 《JavaScript高级程序设计》学习笔记
系统学习JS, 从<JavaScript高级程序设计>入门,通过学习jQuery或者angularJS源码来进阶. 第1章 JavaScript简介 1.JS问世的目的是处理以前由服务器端 ...
- 《JavaScript高级程序设计》学习笔记(5)——面向对象编程
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第六章内容. 1.面向对象(Object ...
随机推荐
- png图片那点事
PNG图片格式现在包含三种类型: 1.PNG8 256色PNG的别名 2.PNG24 全色PNG的别名 3.PNG32 全色PNG的别名 基本上PNG32就是PNG24,但 ...
- IIS 发布网站遇到的问题
1.解决win7 64位[ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 http://wwwu8.wap.blog.163.com/w2/blogDetail.do?hostID ...
- [022]c++虚函数、多态性与虚表
原文出处:http://my.oschina.net/hnuweiwei/blog/280894 目录[-] 多态 虚函数 纯虚函数 虚表 一般继承(无虚函数覆盖) 一般继承(有虚函数覆盖) 多重继承 ...
- C++类设计2(Class with pointer members)
二 Class with pointer members(Class String) 1. 测试代码(使用效果) int main() { String s1(), String s2("h ...
- ReSharper 8.0.2000.2660
user:dobit sn:G/YgFyekI7EL0oBc5YBWKI5WCi3pwXWP 下载地址
- Java Properties类
Properties 是哈希表的一个子类.它是用来维持值列表,其中的键是一个字符串,值也是一个字符串. Properties类被许多其他的Java类使用.例如,它是对象通过System.getProp ...
- 9. Android框架和工具之 SlidingMenu(抽屉菜单)
详见为知笔记:Android / Android用户界面优化 / Android SlidingMenu菜单栏程序设计
- ASP.NET的票据工具类FormsAuthenticationTicket
票据是asp.net登录验证的一种方式,以前研究过,现在并不使用,今天发现了,记录一下. /*###################票据工具################### * 1.设置< ...
- Android Activity的启动过程
文章编辑的太长了,请移步我的csdn博客:http://blog.csdn.net/xyh269 Android Activity的启动过程原文链接:http://blog.csdn.net/xyh2 ...
- jQuery:节点(插入,复制,替换,删除)操作
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...