[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 ...
随机推荐
- HTML5 修改浏览器url而不刷新页面
嘛,起因是黑子大叔在微博上的一条@信息,找起了这个的实现,看了一圈google的中文信息内似乎还没有怎么提到这个的内容,就发表上来. 详细效果就是类似于用Firefox4+/Chrome 5+/Saf ...
- IOS触摸事件和手势识别
IOS触摸事件和手势识别 目录 概述 触摸事件 手势识别 概述 为了实现一些新的需求,我们常常需要给IOS添加触摸事件和手势识别 触摸事件 触摸事件的四种方法 -(void)touchesBegan: ...
- 云服务器 ECS Linux IO 占用高问题排查方法
https://help.aliyun.com/knowledge_detail/41224.html?spm=5176.7841174.2.19.uqC1as#使用 iostat 从系统纬度查看磁盘 ...
- Android实现XML解析技术
转载:Android实现XML解析技术 本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为 ...
- QStyle 新风格的实现
摸索了很久,实际实现才发现很简单. 利用qt助手搜style可以发现style的实现和qapplication有关,在Qapplication里面搜到函数: void QApplication:: ...
- css笔记 css用法:
前端框架:AdminLTE https://almsaeedstudio.com/themes/AdminLTE/index2.html CSS学习教程: http://www.divcss5.co ...
- 基于HTML5的捕鱼达人游戏网页版
之前给大家分享了html5实现的水果忍者,愤怒的小鸟,中国象棋游戏.今天给大家分享一款捕鱼达人(fishjoy)网页版游戏的源码.可以在线玩也可以下载到本地.它使用html5技术和javascript ...
- java 删除字符串中的反斜杠\
Java中有时候会打印出来会含有反斜杠(\)的字符串,我们需要删除时,可以使用 replace() 或 replaceAll() 但是要注意的是replaceAll()里面用的是正则表达式,所以一个斜 ...
- 关于解决android4.0系统中菜单无法添加Icon的问题
在Android4.0系统中,创建菜单Menu,然后通过setIcon方法给菜单添加图标是无效的,图标不会显出来,而之前的系统中是可以显示出来的.这个问题的根本原因在于4.0系统中,涉及到菜单的源码类 ...
- Tested work with China Digiprog 3 4.94 mileage programmer
I was thinking about buying a Digiprog3 clone from China I know that YANHUA Digiprog 3 is the best a ...