ECMAScript---数字类型详解
number数字类详解
整数、小数、负数、NaN都是number数字类型的
NaN:not a number ,但是它是数字类型的
isNaN:检测当前值是否 不是有效数字,返回true代表不是有效数字,返回false是有效数字
// 语法 isNaN ([value]) ;
var num = 12;
isNaN (num); // false 检测num变量存储的值是否为非有效数字 var str = '大神';
isNaN (str); //true 非有效数字 isNaN (true); //false 有效数字
isNaN (false); //false 有效数字
isNaN (null); //false 有效数字
isNaN (undefined); //true
isNaN ({name:'lei'}); //true
isNaN ([20、30]); //true
isNaN ([20]) ; //false 有效数字
isNaN (/^$/) ; //true
isNaN (function (){}); //true
isNaN检测的机制:
1、首先验证当前要检测的值是否为数字类型的,如果不是,浏览器会默认把值转换为数字类型的
2、当前检测的值已经是数字类型的,是有效数字返回false,不是返回true(数字类型中只有NaN不是有效数字,其余都是有效数字)
把非数字类型的值转换为数字:
1、基本数据类型转换为数字:直接使用Number这个方法转换的
/字符串转数字**/
Number ('13'); //
Number ('13.5'); //13.5 Number ('13.5.5'); //NaN 如果当前字符串中出现任意一个非有效数字字符,结果为NaN
Number ('13px'); //NaN /*布尔转数字*/
Number (true); //
Number (false); // /*其他*/
Number (null) ;//
Number (undefined); //NaN
2、引用数据类型转换为数字:先把引用值调用toString转换为字符串,然后再把字符串调取Number转换为数字
({}).toString() ; // '[object Object]'
Number ('[object Object]') ;//NaN
([20,30]).toString() ; // '20,30'
Number ( '20,30'); // NaN
([20]).toString();//'20'
Number('20');//20
isNaN(20);//false
/*特殊情况*/
([]).toString () ;// ' '
Number('');//
isNaN([]); //false ,因为 [] 先toString 为 空字符串,空字符串再转数字为0,0是有效数字
parseInt / parseFloat 等同于Number ,也是把其他类型转换为数字类型
和Number区别在于字符串转换分析上
Number:出现任意非有效数字字符,结果为NaN
paeseInt:把一个字符串中的整数部分解析出来
paseFloat:把一个字符串中的小数(浮点数)部分解析出来
parseInt('13.5px'); //
parseFloat('13.5px');//13.5
parseInt('w:13.5px');//NaN 一旦遇到非有效数字字符,结束查找
NaN的比较
NaN和谁都不相等,包括它自己
NaN == NaN ;// false
思考题:有一个变量num,存储的值不知道,想检测它是否是一个有效数字,下面方案是否可以?
if(Number (num )== NaN){
alert('num不是有效数字');
}
if(isNaN(num)){
alert('num不是有效数字');
}
答案肯定是第二种了,因为NaN不等于NaN,条件不可能成了
也只有isNaN是能检测当前值是否为有效数字了,true非有效数字,false是有效数字
ECMAScript---数字类型详解的更多相关文章
- JSON取值(key是中文或者数字)方式详解
JSON取值(key是中文或者数字)方式详解 先准备一个json对象用于演示 var json = {'name':'zhangsan', '年龄':23, 404:'你可能迷路了'}; 使用JS中w ...
- (转)MySQL字段类型详解
MySQL字段类型详解 原文:http://www.cnblogs.com/100thMountain/p/4692842.html MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间 ...
- MySQL中tinytext、text、mediumtext和longtext等各个类型详解
转: MySQL中tinytext.text.mediumtext和longtext等各个类型详解 2018年06月13日 08:55:24 youcijibi 阅读数 26900更多 个人分类: 每 ...
- C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解 ...
- C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)
前面三篇文章<C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)>.<C++11 并发指南六( <atomic> 类型详解二 std::at ...
- C++11 并发指南六(atomic 类型详解三 std::atomic (续))
C++11 并发指南六( <atomic> 类型详解二 std::atomic ) 介绍了基本的原子类型 std::atomic 的用法,本节我会给大家介绍C++11 标准库中的 std: ...
- C++11 并发指南六( <atomic> 类型详解二 std::atomic )
C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍) 一文介绍了 C++11 中最简单的原子类型 std::atomic_flag,但是 std::atomic_flag ...
- dede的pagelist标签的listsize数字属性详解(借鉴)
dede的pagelist标签的listsize数字属性详解.见远seo经常用织梦搭建各种网站,有次发现列表页面的分页显示超过div的界限,也就是溢出了或者说是撑破了.后来经过研究发现是pagelis ...
- 服务启动项 Start类型详解
注册表的服务启动项 Start类型详解 HKLM\SYSTEM\CurrentControlSet\services\ 下的服务项.不论有没有在services.msc服务管理控制台中显示,在注册表中 ...
随机推荐
- C# Socket服务器端如何判断客户端断开求解
Socket client //假如已经创建好了,连接到服务器端得Socket的客户端对象. 我们只要client.Poll(10,SelectMode.SelectRead)判断就行了.只要返回Tr ...
- 名称空间(name space)
名称空间(name space) 函数编程中,有一个挥之不去的问题:变量名的定义. 我们知道,在相同的作用域内不能出现两个相同的变量名,否则前者被后者覆盖 我们还知道,局部变量的名字可以与全局变量的名 ...
- Java多线程笔记总结
1.线程的三种创建方式 对比三种方式: 通过继承Thread类实现 通过实现Runnable接口 实现Callable接口 第1种方式无法继承其他类,第2,3种可以继承其他类: 第2,3种方式多线程可 ...
- element el-table resetfields() 不生效
表单中的重置按钮不生效的问题,结合文档对照后,发现是没有为el-form-item设置prop字段 所以,想让resetfields()生效有2个前提: form要设置ref,且ref值要与 this ...
- centos7上搭建zookeeper集群
1.下载zookeeper http://www.apache.org/dyn/closer.cgi/zookeeper/ 可以登录这个网站下载,然后上传到 centos上 修改成自己需要的版本 , ...
- Linux之TCPIP内核参数
/proc/sys/net目录 参考1.Linux之TCPIP内核参数优化 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的 ...
- Mysql架构简要
1. MySql 最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信. 主要完成一些类似于连接处理.授权认证.及相关的安全方案.在该层上引入 ...
- 从JavaScript到Python之异常
不少前端工程师看到这个标题可能会产生质问: 我js用得好好的,能后端能APP,为什么还要学习Python? 至少有下面两个理由: 学习曲线.ES6之后的JavaScript(TypeScript)的在 ...
- java中对事务的理解
一.什么是事务 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取. 二.事务的原则(ACID) 原子性:事务要么全部都被执行,要么就全都不被执行,如果有子事务提交失败,那么 ...
- 算法与数据结构基础 - 哈希表(Hash Table)
Hash Table基础 哈希表(Hash Table)是常用的数据结构,其运用哈希函数(hash function)实现映射,内部使用开放定址.拉链法等方式解决哈希冲突,使得读写时间复杂度平均为O( ...