[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

转载于:https://www.cnblogs.com/bsj2016/p/5462409.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458693.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转]深入理解linux内核list_head

http://blog.chinaunix.net/uid-27122224-id-3277511.html 深入理解linux内核list_head的实现 2012-07-17 17:37:01 分类: LINUX 前言:在linux源代码中有个头文件为list.h。很多linux下的源代码都会使用这个头文件,它里面定义 了一个结构,以及…

xcode左侧不显示工程文件目录,提示NO Filter Results

解决办法: What solved was to go to Navigate > Reveal in Project Navigator . After this, the structure appeared again.

【VC++技术杂谈005】如何与程控仪器通过GPIB接口进行通信

在工控测试系统中,经常需要使用到各类程控仪器,这些程控仪器通常具有GPIB、LAN、USB等硬件接口,计算机通过这些接口能够与其通信,从而实现自动测量、数据采集、数据分析和数据处理等操作。本文主要介绍如何与程控仪器通过GPIB接口…

标题在上边框中的html(fieldset标签)

<fieldset> <legend>标题</legend> 内容 </fieldset> 转载于:https://www.cnblogs.com/lswbk/p/4952820.html

移除项目中的CocoaPods

在项目中移除CocoaPods cocoaPods虽然很方便&#xff0c;但是我是真心的不喜欢用它&#xff0c;总是出错如果你觉得CocoaPods让你的项目出现了问题&#xff0c;不好用甚至是恶心&#xff0c;想将其从项目中彻底移除&#xff0c;也有方法&#xff1a; 1.删除工程文件夹下的Podf…

ShellExecute使用详解

有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂&#xff0c;比较少用。 2.WinExec主要运行EXE文件。如&#xff1a;WinExec(Notepad.exe Readme.txt, SW_SHOW); 3.ShellExecute不仅可以运行EXE文件&#xff0c;也可以运行…

javascript笔记整理(对象基础)

一、名词解释 1.基于对象&#xff08;一切皆对象&#xff0c;以对象的概念来编程&#xff09; 2.面向对象编程(Object Oriented Programming&#xff0c;OOP) A.对象(JavaScript 中的所有事物都是对象) B.对象的属性和行为 属性:用数据值来描述他的状态 行为:用来改变对象行为的…

java的安装和配置

JRE (JAVA Runtime Enviroment java运行环境),包括JVM(java虚拟机)和java程序所需的核心功能类库&#xff0c;如果只是运行java程序&#xff0c;只需安装JRE。 JDK &#xff08;Java Development Kit 开发工具包&#xff09;包括开发JAVA程序时所需的工具&#xff0c;包括JRE…

#if, #ifdef, #ifndef, #else, #elif, #endif的用法

#ifdef的用法 灵活使用#ifdef指示符&#xff0c;我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。 代码举例&#xff1a;新建define.cpp文件 &#xff03;include "iostream.h" int main() { #ifdef DEBUG cout<< "Beginning ex…

redhat 6.6 安装 (LVM)

http://www.cnblogs.com/kerrycode/p/4341960.html转载于:https://www.cnblogs.com/zengkefu/p/4954955.html

MFC对话框最小化到托盘

1、在资源中的Icon中导入一个自己喜欢的图标&#xff0c;ID命名为IDR_MAINFRAME&#xff0c;将先前的IDR_MAINFRAME的图标删除掉&#xff1b; 2、在自己的Dialog头文件中定义一个变量 NOTIFYICONDATA m_nid&#xff0c;关于该结构体的具体信息可以查阅MSDN&#xff1b; 3、添加…

Android acache读后感

今天了解到了一个android轻量级的开源缓存框架,(github&#xff1a;https://github.com/yangfuhai/ASimpleCache),花了一点时间研究了一下源代码&#xff0c;大概的思路就是每个缓存目录对应一个Acache类&#xff0c;通过mInstanceMap关联&#xff08;个人觉得这个主要是减少对…

continue break

块作用域 一个块或复合语句是用一对花括号&#xff08;"{}"&#xff09;括起来的任意数量的简单的java语句。块定义了变量的作用范围。 1、嵌套块是方法内的嵌套&#xff0c;不包括类的花括号。在嵌套块内的 变量是不可以重复定义的。 2、不允许重复定义的是局部变…

GetVersionEx 获取系统版本信息

转自&#xff1a;http://blog.csdn.net/yyingwei/article/details/8286658 最近在windows 8上获取系统版本信息需要调用系统API&#xff0c;于是用到了GetVersionEx。 首先看一看函数原型&#xff1a; [cpp] view plaincopy BOOL GetVersionEx(POSVERSIONINFO pVersionInformat…

popoverController(iPad)

一、设置尺寸 提示&#xff1a;不建议&#xff0c;像下面这样吧popover的宽度和高度写死。 1 //1.新建一个内容控制器2 YYMenuViewController *menuVc[[YYMenuViewController alloc]init];3 4 //2.新建一个popoverController&#xff0c;并设置其内容控制器5 s…

静态成员变量和非静态成员变量的对比

静态成员变量和非静态成员变量的对比 1、存储的数据 静态成员变量存储的是所有对象共享的数据 非静态成员变量存储的是每个对象特有的数据 2、存储位置 静态成员变量是随着类的加载在方法区的静态区开辟内存了 非静态成员变量是随着对象的创建再堆中开辟内存 3、调用方式 静态成…

c++的thread类(c++线程简单用法)

最近看了一个Thread类&#xff08;忘记在哪里看的了&#xff09;&#xff0c;感觉不错。 创建线程时线程对应的函数必须是类的静态成员&#xff0c;由于静态成员无法访问类的非静态成员&#xff0c;我从前都是把对象的指针作为参数传递给线程函数来避免这个问题&#xff0c;但是…

[LeetCode]Merge Sorted Array

题目描述:(链接) Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:You may assume that nums1 has enough space (size that is greater or equal to m n) to hold additional elements from nums2. The number of eleme…

[LeetCode]Integer to Roman

题目描述:(链接&#xff09; Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999. 解题思路&#xff1a; 1 class Solution {2 public:3 string intToRoman(int num) {4 vector<int> values{1000…

[c++]代理对象模式

代理对象 <code class"hljs cpp has-numbering" style"display: block; padding: 0px; box-sizing: border-box; font-family: Source Code Pro, monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius:…