isNaN的诡异之处(令人迷惑)

1.

isNaN(‘‘); // false

isNaN(null); // null

2.

isNaN===isNaN; // false

两个字符串都不是数。他们应该是一类的而isNaN认为他们不等价

3.
isNaN(‘1.23‘); // false

综上所述:

isNaN会对数据进行隐式转换。要不仔细研究的话,给我们项目中的代码造成隐患。

时间: 2024-08-05 08:33:39

isNaN的诡异之处(令人迷惑)的相关文章

代码坏味道之令人迷惑的暂时字段

为什么我们随意命名变量会是灾难性的决定? 随意命名变量是编写代码的灾难性决定,我这里说的比较严重,但是为了强调编程过程中不要随意命名我们的变量.因为从以下三方面的理由是不允许我们在程序中随意命名变量的.首先在编程过程中,随意命名的变量会导致我们编写代码中弄乱数据传输的关系,因为人们通过混乱的字段会把字段的本意理解错误的,理解错误字段的意思就会把该字段用在本不该她使用的地方.其次,当你费尽千辛万苦程序终于能够运行了,但是面对需求变更或代码给其他人阅读的时候,会给阅读人带来很大的难度,因为当别人来阅

[Hadoop] 令人迷惑的版本

由于Hadoop还处于初期高速发展的节点,加上它又是开源的,因此它的版本一直很混乱,Hadoop一些主要的特性有: Append:支持文件追加功能,如果想使用HBase,需要这个特性. RAID : 在保证数据可靠的前提下,通过引入校验码减少数据块数目.详细链接:https://issues.apache.org/jira/browse/HDFS/component/12313080 Symlink :支持HDFS文件链接,具体可参考:https://issues.apache.org/jira

令人迷惑的CAP与ACID用语

令人迷惑的CAP与ACID用语 CAP和ACID共享相同的词汇表:原子性(Atomic).一致性(Consistent),诸如此类.但内有玄机:这些词语虽一样,但它们的意思是完全不同的东西.CAP来自分布式系统理论,而ACID属于数据库系统.分布式数据库既使用CAP词汇,也使用ACID词汇,这显然造成许多混淆.当某人讲:"我们不能放弃一致性",他谈到的一致性是什么?让我们来看一看[Atomic-Consistent-Isolated-Durable]和[Consistent-Avail

令人迷惑的写法(五十六)

今天我们来看看一些在程序中迷惑的写法,下面的程序想要表达什么意思呢? #include <iostream> #include <string> using namespace std; template < class T > class Test { public:     Test(T t)     {         cout << "t = " << t << endl;     } }; templat

那些令人迷惑的名词:切图/H5/XML/REST

长时间以来对一些名词感到很困惑,不明白其具体指什么,在此记录一下. 一.切图 1.1 原先理解 从字面意思理解,切图是指将一张大的图切割成很多张小的图片.最早(视频教程网或者我要自学网)看到的视频也是这个意思,并说切图的原因是整张图片放入界面会比较大,为了加快加载速度提升用户体验,至于去除的部分重复的通过css拉长代替颜色可代替的用css颜色代替文字也可以通过CSS调整字体代替.在以前网速是比较大的瓶颈对这个解说还是比较信服的. 1.2 困惑 但后来感觉一些小公司中切图似乎除了上述切割图片,还有

笨拙而诡异的 Oracle

有这样一段 SQL 代码: 通过 C# 获取查询结果: SQL 代码中有两个参数,且都是字符串类型,以上的 C# 代码是生成 Oracle SQL 代码所需要的参数.运行结果如下: 居然发生这样的错误!苦思冥想外加多次尝试,均无果! 该错误的诡异之处在于:phdLevel 的值为 "%%" 时,运行正常,而为某一状态值(平衡,欠平衡,过平衡) 时,运行出错!如果说 SQL 语句有问题,将上述 SQL 语句参数代入,在 PL/SQL 中运行,一切正常!如果说是 p_phdlevel 的参

java review几处小问题集锦

1 线程池使用不当 我们的调度系统需要将一堆会员分配给相应的人员来处理,流程如以下伪代码所示: public void dispatch() { while (true) { List<Member> memberList = getUnassignedMemberList(); //获取所有未分配的会员 for(Member each : memberList) { singleDispatch(each); //为每一个会员分配相应的人员处理 } try { Thread.sleep(10

FindBugs规则整理

FindBugs规则整理 FindBugs是基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug,主要检查bytecode中的bug patterns,如NullPoint空指针检查.没有合理关闭资源.字符串相同判断错(==,而不是equals)等 一.Security 关于代码安全性防护 1.Dm: Hardcoded constant database password (DMI_CONSTANT_DB_PASSWORD) 代码中创建DB的密码时采

Ecmascript6 第一章

Javascript语言的核心功能是由ECMA-262标准定义的.通过这种标准定义的语言叫做ECMAScript,浏览器和Node.js环境中的javascript是一个ECMAScript的超集.浏览器和No的.js可能通过追加对象和方法来增加更多的功能,javascript语言的核心依旧由ECMAScript定义,也就是为什么ECMA-262的发展对javascript的发展至关重要. 在2007年,Ajax的流行标志着动态Web应用开始了一个新的纪元,但是javascript在ECMA-2