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服务管理控制台中显示,在注册表中 ...
随机推荐
- “朕赐给你,才是你的;朕不给,你不能抢”--custome role在Azure权限管理中的简单实践
在开始详细讨论技术问题之前,有一些个人观点想发表一下: ---作为一个甲方云平台的掌控着,如果任何事情你都是让partner全部帮你搞定,自己既不审核也不研究,那无论是对于公司还是个人发展来说都是没任 ...
- nginx文件名逻辑漏洞_CVE-2013-4547漏洞复现
nginx文件名逻辑漏洞_CVE-2013-4547漏洞复现 一.漏洞描述 这个漏洞其实和代码执行没有太大的关系,主要原因是错误地解析了请求的URL,错误地获取到用户请求的文件名,导致出现权限绕过.代 ...
- js - 原生ajax访问后台读取数据并显示在页面上
1.前台调用ajax访问后台方法,并接收数据 <%@ page contentType="text/html;charset=UTF-8" language="ja ...
- golang "[]uint8" to string
关于Uinit8和Byte: The Go Programming Language Specification Numeric types uint8 the set of all unsigned ...
- 【Java】Map
今天用到了键-值对,于是想起了 Java 的 Map,由于之前并不很熟悉,就看了下源码,如下: /* * Copyright (c) 1997, 2006, Oracle and/or its aff ...
- Java中Timer和TimerTask来实现计时器循环触发
package xian; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.Fi ...
- Vue组件间通信-Vuex
上回说到Vue组件间通讯,最后留了一个彩蛋~~~Vuex.Vuex是另一种组件通讯的方法,这节来说说Vuex(store仓库). 首先Vuex需要安装,安装的方式有很多,在这里就不一一细说了.我是通过 ...
- scripts may close only the windows that were opened by it 浏览器JS控制无法关闭当前页面
非window.open形式打开的子页面用js的window.close在chrome下就会提示scripts may close only the windows that were opened ...
- java课堂 动手动脑2
1.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数 Modulus=231-1=int.MaxValue, Multiplier=75=16807. C=0 当显示过231-2个数 ...
- 使用阿里云oss
写这篇博文的原因是公司有个项目需要用到阿里云来存放用户头像文件.后期软件安装版本也可能需要存进去,然后折腾了两天终于摸熟了一点皮毛,在这里给大家简单介绍下. 一.初识对象存储oss 1.进入阿里云控制 ...