JS中的NaN和isNaN,简直是双重人格?
//=>语法:isNaN([value]) var num=12; isNaN(num); //->检测num变量存储的值是否为非有效数字 false isNaN('13') =>false isNaN('你好呀') =>true isNaN(true) =>false isNaN(false) =>false isNaN(null) =>false isNaN(undefined) =>true isNaN({age:9}) =>true isNaN([12,23]) =>true isNaN([12]) =>false isNaN(/^$/) =>true isNaN(function(){}) =>true
Number('13') ->13 Number('13px') ->NaN 如果当前字符串中出现任意一个非有效数字字符,结果则为NaN Number('13.5') ->13.5 可以识别小数
[布尔转数字]
Number(true) ->1 Number(false) ->0
Number(null) ->0 Number(undefined) ->NaN
({}).toString() ->'[object Object]' ->NaN
[12,23].toString() ->'12,23' ->NaN [12].toString() ->'12' ->12
/^$/.toString() ->'/^$/' ->NaN
Number('') ->0 [].toString() -> '' => isNaN([]):false
parseInt('13.5px') =>13 parseFloat('13.5px') =>13.5parseInt('width:13.5px') =>NaN 从字符串最左边字符开始查找有效数字字符,并且转换为数字,但是一但遇到一个非有效数字字符,查找结束
if(Number(num)==NaN){alert('num不是有效数字!');}NaN和谁都不相等,条件永远不成立(即使num确实不是有效数字,转换的结果确实是NaN,但是NaN!=NaN的)if(isNaN(num)){//=>检测是否为有效数字,只有这一种方案alert('num不是有效数字!') }
【布尔 boolean】
// [手动自己转] Boolean(0) => false Boolean([]) => true []==false => true // 都转换为数字 0==0 ![]==false => true // 先算![],把数组转换为布尔取反=>false =>false==false
// [程序自己需要转换 =>一般都是条件判断的时候],if内的值会默认转换成布尔类型,如果为真执行,为false则不执行 if(1){//=>如果条件成立,执行大括号中的代码//=>浏览器会把1作为条件:把它转换为布尔的TRUE,条件成立 }
1+true =>2 //数学运算 '1'+true =>'1true' //字符串拼接 [12]+10 =>'1210' //虽然现在没看见字符串,但是引用类型转换为数字,首先会转换为字符串,所以变为了字符串拼接 ({})+10 =>"[object Object]10" []+10 =>"10"
转载于:https://www.cnblogs.com/jiajialove/p/10998710.html
JS中的NaN和isNaN,简直是双重人格?相关推荐
- JS中的NaN和isNaN
文章目录 一.NaN:not a number 不是个数字的数字类型 但是属于数字类型 特性:1.NaN是假的布尔值 2.NaN与自己都不相等 二.isNaN is not a number 是不是不 ...
- js中的NaN并不等于NaN
在js中,object===object并没有任何问题,但js中的NaN===NaN返回的却是false,这是为什么呢? 因为NaN是Not a Number的缩写,即不是一个数字.如,A不是一个数字 ...
- JavaScript中的 NaN 与 isNaN
NaN NaN 即 Not a Number ,不是一个数字. 在 JavaScript 中,整数和浮点数都统称为 Number 类型 .除此之外,Number 类型还有一个很特殊的值,即 NaN . ...
- JS中判断NaN的方法
var tmp = 0/0; if (isNaN(tmp)){ alert( "NaN" ); }
- JS中NaN的认识与ISNaN函数的使用
NaN & ISNaN 在JS中,NaN用来表示一个非数字的特殊值,当发现无法进行运算时,js不会报错,而是会返回一个NaN NaN的注意事项: NaN为number类型,但NaN表示一个非数 ...
- JS中NaN、NULL、undefined、详解
NaN:保留字(表明数据类型不是数字) undefined:对象属性或方法不存在,或声明了变量但从未赋值. 即当你使用了对象未定的属性或者未定义的方法时或当你声明一个变量,但你确从未对其进行赋值,便对 ...
- 聊一聊js中的null、undefined与NaN
零.寒暄 翻翻自己的博客,上一篇竟然是六月26号的,说好的更新呢?回顾刚刚过去的这个七月,整天都是公司的入职培训加上自己的小论文,每天奋战到凌晨1点多,这是要挂的节奏啊!但是不论怎么说,自己的时间管理 ...
- JS中,如何判断一个被转换的数是否是NaN
var x="abc";//isNaN()函数判断是否是NaNif (isNaN(parseInt(x))) {alert("非数字");} else{aler ...
- NaN在js中的意义
NaN在js中的意义 NaN(Not a number)在一般的计算机专业都表示为 非数值类型,或者不可表示的值. 在javascript中是一种全局对象的属性,表示这个值不是数字,在js中可以将nu ...
最新文章
- mxnet自定义训练日志
- 小程序分享到朋友圈功能_微信小程序开放分享到朋友圈功能
- 产品经理必备知识之网页设计系列(三)-移动端适配无障碍设计及测试
- @angular/core里的 NgZone -使得Angular不跟踪变化
- 使用OpenCV实现图像中的文字切割
- 报表建oracle表,建立Oracle report报表基本步骤及创建报表技巧
- vba显示正在加载_简单、易用的VBA过程积木代码
- package.json的进阶
- 《财富》2020中国40岁以下商界精英榜出炉:张一鸣位列榜首
- Ddos攻击攻击与防御
- C++ STL学习笔记(5) Vector容器, array容器,deque容器
- 分享一个同行的blog,UI方面的。
- 兄弟HL-1118加粉清零
- 大数据之spark_spark SQL的建表语句
- 【计算机视觉】图像检索
- matlab打靶法求解薛定谔方程,用MATLAB语言解氢原子与类氢离子的定态薛定谔方程...
- PMP备考之路 - 汪博士第十二章(项目采购管理)
- 【封面】数字经济引领中国产业改革
- 【必知必会的MySQL知识】②使用MySQL
- 费马素数(费马质数)
热门文章
- C# 平时碰见的问题【1】
- [Boost基础]并发编程——asio网络库——定时器deadline_timer
- 关于“让我们基于Node.js创建一个Web应用:记事本(三)”
- 新的GNSS精度度量是怎样定义的?
- 为什么Python是数据科学领域最受欢迎的语言
- 计算机视觉工程师必读经典图书推荐
- RHEL在VM虚拟机下仅主机模式不能联网的解决方法
- android 如何去掉自定义标签页,Android中为TextView增加自定义的HTML标签
- 重启openssl服务linux,Nginx的启动、停止与重启---linux
- c语言地理坐标存储 转发,纬度/经度坐标的2个列表之间的地理距离