[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 ...
随机推荐
- 调研js模板引擎
js模板引擎越来越多的得到应用,如今已经出现了几十种js模板引擎,国内各大互联网公司也都开发了自己的js模板引擎(淘宝的kissy template,腾讯的artTemplate,百度的baiduTe ...
- sublime添加ctags实现代码跳转
本次操作是在sublime text 2下进行. 1.先到http://sublime.wbond.net/Package%20Control.sublime-package下载Package Con ...
- 知数堂MYSQL优化课---CU论坛版主 DBA 博客
http://www.cnblogs.com/MYSQLZOUQI/category/546261.html
- xcode中没有autoSizing的设置
转自:http://blog.sina.com.cn/s/blog_954bb2f001016oyx.html 学习Xcode的iOS编程时,可能会发现Autosizing Control不见了,其原 ...
- RHEL 7 命令行注册和激活订阅服务
导读 前一阵子,红帽推出了开发者免费使用订阅功能,只要注册成为红帽开发者就可以免费使用包括 RHEL7 在内的开发套件. 今天我们就来看一看怎么使用命令行来快速注册和激活订阅服务,以后就可以方便地 ...
- 3.2html学习笔记之图片
<img src="" width="50%" alt="加载时候或无法显示时候显示的文字" height="让浏览器预先给 ...
- iOS (catagroy)类别
1:可以为类添加新的方法,但不能添加实例变量. 2:第一,无法向类中添加新的实例变量.类别没有位置容纳实例变量. 第二,名称冲突,即类别中的方法与现有的方法重名.当发生名称冲突时,类别具有更高的优先级 ...
- Java开发核心技术面试心得分析
Java的数据结构有哪些?Map与Set的本质区别是什么? 分析:Java常见的数据结构有Collection和Map,其中Collection接口下包括List和Set接口,其下又有多个实现类如Li ...
- 小黄豆CRM软件安装
小黄豆CRM软件(官方网址:http://www.xhdcrm.com,演示地址:http://demo.xhdcrm.com)是一款开源免费的客户关系管理系统,其客户跟进模块简单易用.安装环境是wi ...
- Spring-boot & spring.security
spring.security提供了一种身份认证框架,开发者可以在这个框架中实现各种方式的用户身份管理,比如:LDAP.MYSQL.OAUTH.Mongo等等. spring.security认证步骤 ...