博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript 的怪癖 3:标准的等号 (==)
阅读量:4110 次
发布时间:2019-05-25

本文共 582 字,大约阅读时间需要 1 分钟。

原文:

译文:

译者:

此文是  系列的第三篇。

让我们先看一个简单的例子: 由于一般的等于符号 ==、!=经常会出现问题,以至于我们不得不使用严格等于(===、!==)。 当然有人说这些规则也有例外,我不同意这个观点。 怀揣的这个问题,我们现在就来看一下这个奇怪的现象:== 是不必要。

这个“正常”的等号(==)有很多怪癖。 虽然他很宽容(非严格比较),当与真值或者假值比较时,它会忽略类型(详见):

> 0 == false  // OKtrue> 1 == true  // OKtrue> 2 == true  // not OKfalse> '' == false  // OKtrue> '1' == true  // OKtrue> '2' == true  // not OKfalse

除了这些,我们设置可以把那些明显不能比较的值进行比较(我勒个去~~比较的结果居然还是 true):

> '' == 0true> '\n  123  \t' == 123true

最后一次比较返回是 true,因为在 javascript 中把字符串转换数字类型时,会过滤掉首尾空白字符。 如果你仍然对关于 == 怎么工作感兴趣,你可以读读。 对于严格比较符(===),不同类型的值比较是不相等的 。也就是说试用严格比较符号,上诉的问题都不复存在。

参考文献:

你可能感兴趣的文章
普通Java工程利用注解Spring做周期性任务调度框架搭建
查看>>
linux之top命令
查看>>
Java中Timer的使用
查看>>
Java基于url获取host的两种方法
查看>>
Java获取域名whois的方式
查看>>
eclipse注释模板中设置@author
查看>>
基于Jsoup获取页面的header map,title和keywords
查看>>
互联网爬虫IP列表
查看>>
maven从本地磁盘加载jar的方式
查看>>
Hadoop中map reduce和client共享数据源的方式
查看>>
Hadoop以某目录下的所有目录作为input源方式
查看>>
E-R模型概述
查看>>
数据仓库基本架构描述
查看>>
HTTP Header 概述
查看>>
linux之du和df命令
查看>>
Java正则提取domain(com,org,cn等)
查看>>
Hadoop获取文件的元数据信息
查看>>
项目管理的两个任务进度管理工具
查看>>
Spirng注解和dbutils集成
查看>>
HDFS Federation综述
查看>>