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---数字类型详解的更多相关文章

  1. JSON取值(key是中文或者数字)方式详解

    JSON取值(key是中文或者数字)方式详解 先准备一个json对象用于演示 var json = {'name':'zhangsan', '年龄':23, 404:'你可能迷路了'}; 使用JS中w ...

  2. (转)MySQL字段类型详解

    MySQL字段类型详解 原文:http://www.cnblogs.com/100thMountain/p/4692842.html MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间 ...

  3. MySQL中tinytext、text、mediumtext和longtext等各个类型详解

    转: MySQL中tinytext.text.mediumtext和longtext等各个类型详解 2018年06月13日 08:55:24 youcijibi 阅读数 26900更多 个人分类: 每 ...

  4. C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解

    前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解  ...

  5. C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)

    前面三篇文章<C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)>.<C++11 并发指南六( <atomic> 类型详解二 std::at ...

  6. C++11 并发指南六(atomic 类型详解三 std::atomic (续))

    C++11 并发指南六( <atomic> 类型详解二 std::atomic ) 介绍了基本的原子类型 std::atomic 的用法,本节我会给大家介绍C++11 标准库中的 std: ...

  7. C++11 并发指南六( <atomic> 类型详解二 std::atomic )

    C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)  一文介绍了 C++11 中最简单的原子类型 std::atomic_flag,但是 std::atomic_flag ...

  8. dede的pagelist标签的listsize数字属性详解(借鉴)

    dede的pagelist标签的listsize数字属性详解.见远seo经常用织梦搭建各种网站,有次发现列表页面的分页显示超过div的界限,也就是溢出了或者说是撑破了.后来经过研究发现是pagelis ...

  9. 服务启动项 Start类型详解

    注册表的服务启动项 Start类型详解 HKLM\SYSTEM\CurrentControlSet\services\ 下的服务项.不论有没有在services.msc服务管理控制台中显示,在注册表中 ...

随机推荐

  1. [HDOJ] 2026.Max Sum

    2026.Max Sum (c++) Problem Description Consider the aggregate An= { 1, 2, -, n }. For example, A1={1 ...

  2. c实现生产者消费者问题。 windows下。

    #include <stdio.h>#include <windows.h> #define P(S) WaitForSingleObject(S,INFINITE)//定义W ...

  3. git commit规范化实践

    最近从svn转到git进行代码版本控制,今天了解了git commit规范化的一些知识后,写此文章记录下配置过程. 环境 编辑器使用的是vscode,项目框架是vue3.0 规范化工具 规范化git ...

  4. mysql协议分析2---认证包

    主人看到navicat和mysql在那嘻嘻哈哈,眉来眼去的,好不快乐,忽然也想自己写个程序,直接去访问Mysql,虽然现在已经有很多现成的中间件可以直接拿来用了,程序只要负责写sql语句就行了,但是主 ...

  5. JSTL和EL简介

    EL Expression Language,表达式语言,通过操作存在于PageContext等的数据,实现JSP的编写更加简单,单纯使用EL不用引入jar包,只要容器支持即可. EL的隐含对象 EL ...

  6. 私有网络(VPC)概述

    1 什么是私有网络(VPC) 私有网络是一块可用户自定义的网络空间,您可以在私有网络内部署云主机.负载均衡.数据库.Nosql快存储等云服务资源.您可自由划分网段.制定路由策略.私有网络可以配置公网网 ...

  7. poj 1503 高精度加法

    把输入的数加起来,输入0表示结束. 先看我Java代码,用BigINteger类很多东西都不需要考虑,比如前导0什么的,很方便.不过java效率低点,平均用时600ms,C/C++可以0ms过. im ...

  8. poj 1068 模拟

    题目链接 大概题意就是告诉你有个n个小括号,每一个")"左边有多少个"("都告诉你了,然后让你求出每一对括号之间有多少对括号(包含自己本身). 思路: 我先计算 ...

  9. POI导入excel

    前言 在做后台管理的时候经常会用到excel导入的问题,就是将excel中的内容批量导入到数据库中,正好在新项目中我也做了excel导入的功能,来分享给大家,也给自己做个记录. 核心思想 excel导 ...

  10. maven打jar包包括依赖包

    <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId& ...