[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

时间: 2024-08-08 13:56:33

[javascript|基本概念|Number]学习笔记的相关文章

《Javascript权威指南》学习笔记之十一:处理字符串---String类和正则表达式

一.正则表达式的基本语法 1.概念:正则表达式由普通字符和特殊字符(元字符)组成的文本模式,该模式描述在查找字符串主体时待匹配的一个或者多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 普通字符包括所有的大小写字母字符.所有数字.所有标点符号及一些特殊符号.普通字符本身可以组成一个正则表达式,也可以和元字符组合组成一个正则表达式:而元字符则具有特殊的含义,包括().[].{}./.^.$.*.+.?...|.-.?:.?=.?! 2.基本语法 3.优先权含义 二.使用

《Javascript权威指南》学习笔记之十四:JavaScript内建类

前面的几篇博文分别介绍了对象.字符串.数组.日期等内建类,本篇将介绍Boolean/Math/Function/Arguments类 一.使用Boolean类处理逻辑值 Boolean类是JS的一个封装类,可以用于获取Boolean对象的原始数据类型或者字符串表示形式.new Boolean(value)用于创建一个Boolean对象,Boolean(value)它的参数转换成一个原始的布尔值,并且返回这个值.Boolean对象只有两个值:true或者false. value参数可以省略.如果省

《数据库系统概念》学习笔记2

第二章       关系模型 a.关系代数基本运算有:选择.投影.并.集合差.笛卡尔积.和更名 b.附加的关系代数运算:集合交.自然连接.除运算.赋值运算. c.扩展的关系代数运算:广义投影,聚集函数,外连接 d.数据库的修改:删除,插入,更新 小结 A.关系数据模型建立在表的集合的基础之上.数据库系统的用户可以对这些表进行查询,可以插入新元组.删除元组以及更新(修改)元组. B.关系代数定义了一套在表上运算,且输出结果也是表的代数运算.这些运算可以混合使用以得到表达所希望查询的表达式.关系代数

《JavaScript权威指南》学习笔记之二十---XMLHttpRequest和AJAX解决方案

一.AJAX概述 AJAX是Asynchronous JavaScript and XML的缩写,中文译作异步JavaScript和XML.AJAX 不是新的编程语言,而是一种使用现有标准的新方法,在不重新加载页面的情况下,与服务器交换数据并更新部分网页的艺术.其核心是:客户端的Javascript能够与web服务器进行异步数据交换. 二.AJAX基础---XMLHttpRequest对象 所有现代浏览器(IE7+.Firefox.Chrome.Safari 以及 Opera)均内建 XMLHt

《Javascript权威指南》学习笔记之十六:BOM之源---BOM基本应用

BOM的基本应用包括:管理浏览器历史.解析地址和获取浏览器信息,本文将介绍这些应用. 一.浏览历史管理 1.history对象的方法和属性 History 对象包含用户(在浏览器窗口中)访问过的 URL,是 window 对象的一部分,可通过 window.history 属性对其进行访问.没有应用于 History 对象的公开标准,不过所有浏览器都支持该对象. length属性:返回浏览器历史列表中的URl数量.是"前进"和"后退"两个按钮之下包含的地址数的总和.

《Javascript权威指南》学习笔记之十九--HTML5 DOM新标准---处理文档元信息和管理交互能力

一.了解DOM 1.DOM是Document Object Model的缩写,即文档对象类型,是文档在内存中的表示形式,是一个应用程序接口,定义了文档的逻辑结构以及一套访问和处理文档的方法. 2.HTML DOM与Core DOM的区别:前者提供了大量的方法和属性,与现有的程序模型一致,更便于脚本的编写者控制. 二.document对象 使用window.document属性返回一个document对象,代表当前window内加载的文档.window可以省略.winName.document返回

《Javascript权威指南》学习笔记之十八:BOM新成就(1)--客户端存储数据(Web SQL DataBase实现)

使用本地存储和会话存储可以实现简单的对象持久化,可以对简单的键值对或对象进行存储.但是,对于比较复杂的关系数据进行处理时,就要用Web SQL Database.浏览器对Web SQL Database的支持情况如图: 一.如何使用Web SQL Database <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t

《Javascript权威指南》学习笔记之十二:数组、多维数组和符合数组(哈希映射)

Array(数组)是JavaScript中较为复杂的数据类型,同Java.C#.VB等程序语言的数组相比,Javascript数组中的元素不必为相同的数据类型,可以在数组每个元素上混合使用数字.日期.字符串.Object,甚至添加一个嵌套数组. 一.创建数组 1.var arr1 = new Array(); /var  arr2 = new Array(length); /var arr3 = new Array(element1,element2...); var arr4 = [eleme

《Javascript权威指南》学习笔记之十三:处理日期和时间

一.创建Date实例 1.Date类的方法和属性很多不是静态的,因此,在应用Date类的属性和方法之前,必须创建Date类的实例. var date = new Date();  //以当前日期和时间创建实例. var date = new Date(value);  //value是必选项,如果是数值,value表示指定日期与1970.1.1午夜之间的毫秒数:如果是字符串,value则按照parse()方法中的规则进行解析.全局的Date()函数完成与new Date(value)相同的功能

《JavaScript高级程序设计》学习笔记12篇

写在前面: 这12篇博文不是给人看的,而是用来查的,忘记了什么基础知识,点开页面Ctrl + F关键字就好了 P.S.如果在对应分类里没有找到,麻烦告诉我,以便尽快添上.当然,我也会时不时地添点遗漏的东西进去 目录 JS学习笔记1_基础与常识 JS学习笔记2_面向对象 JS学习笔记3_函数表达式 JS学习笔记4_BOM JS学习笔记5_DOM JS学习笔记6_事件 JS学习笔记7_表单脚本 JS学习笔记8_错误处理 JS学习笔记9_JSON JS学习笔记10_Ajax JS学习笔记11_高级技巧