值的比较(大于 等于 小于 不等于)
大于 / 小于:a > b
,a < b
。
大于等于 / 小于等于:a >= b
,a <= b
。
检查两个值的相等:a == b
,请注意双等号 ==
表示相等性检查,而单等号 a = b
表示赋值。
检查两个值不相等:不相等在数学中的符号是 ≠
,但在 JavaScript 中写成 a != b
。
1字符串比较
字符串是按字符(母)逐个进行比较的。
alert( 'Z' > 'A' ); // true
alert( 'Glow' > 'Glee' ); // true
alert( 'Bee' > 'Be' ); // true
2 不同类型比较
当对不同类型的值进行比较时,JavaScript 会首先将其转化为数字(number)再判定大小。
1 alert( '2' > 1 ); // true,字符串 '2' 会被转化为数字
2 alert( '01' == 1 ); // true,字符串 '01' 会被转化为数字 1
alert( true == 1 ); // true
alert( false == 0 ); // true
普通的相等性检查 ==
存在一个问题,它不能区分出 0
和 false
:
alert( 0 == false ); // true
无法区分空字符串和 false
:
alert( '' == false ); // true
这是因为在比较不同类型的值时,处于相等判断符号 ==
两侧的值会先被转化为数字。空字符串和 false
也是如此,转化后它们都为数字 0。
严格相等运算符 ===(三等) 在进行比较时不会做任何的类型转换。
alert( null === undefined ); // false
alert( null == undefined ); // true
当使用数学式或其他比较方法 < > <= >=
时:
null/undefined
会被转化为数字:null
被转化为 0
,undefined
被转化为 NaN
。
下面让我们看看,这些规则会带来什么有趣的现象。同时更重要的是,我们需要从中学会如何远离这些特性带来的“陷阱”。
undefined
不应该被与其他值进行比较:
alert( undefined > 0 ); // false
alert( undefined < 0 ); // false
alert( undefined == 0 ); // false (3)
(1)
和 (2)
都返回 false
是因为 undefined
在比较中被转换为了 NaN
,而 NaN
是一个特殊的数值型值,它与任何值进行比较都会返回 false
。
(3)
返回 false
是因为这是一个相等性检查,而 undefined
只与 null
相等,不会与其他值相等。
除了严格相等 ===
外,其他但凡是有 undefined/null
参与的比较,我们都需要格外小心。
除非你非常清楚自己在做什么,否则永远不要使用 >= > < <=
去比较一个可能为 null/undefined
的变量。对于取值可能是 null/undefined
的变量,请按需要分别检查它的取值情况。
比较运算符始终返回布尔值。
字符串的比较,会按照“词典”顺序逐字符地比较大小。
当对不同类型的值进行比较时,它们会先被转化为数字(不包括严格相等检查)再进行比较。
在非严格相等 ==
下,null
和 undefined
相等且各自不等于任何其他的值。
在使用 >
或 <
进行比较时,需要注意变量可能为 null/undefined
的情况。比较好的方法是单独检查变量是否等于 null/undefined
。
值的比较(大于 等于 小于 不等于)相关推荐
- linux if else 格式,linux shell中 if else以及大于、小于、等于逻辑表达式
在linux shell编程中,大多数情况下,可以使用测试命令来对条件进行测试,这里简单的介绍下,方便需要的朋友 比如比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示 ...
- (36)Verilog HDL关系运算:大于、小于、等于
(36)Verilog HDL关系运算:大于.小于.等于 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)Verilog HDL关系运算:大于.小于.等于 5)结语 1. ...
- shell脚本中判断大于、小于、等于、不等于的符号
shell脚本中判断大于.小于.等于.不等于的符号 在shell中有时候会用到对数字进行判断的场景,尤其在写脚本判断参数的时候,以下有几个命令需要记住 大于 -gt (greater than) 小于 ...
- R语言逻辑运算符(Logical Operators,大于、小于、等于、不等于、与或非、是否为真)、R语言逻辑运算符(Logical Operators)实战示例
R语言逻辑运算符(Logical Operators,大于.小于.等于.不等于.与或非.是否为真.>.<.!=.==.&.|.!&&.||).R语言逻辑运算符(Lo ...
- 原函数与导函数的关系,以及驻点处二阶导函数大于、小于、等于零时,原函数取极小值、极大值或鞍点的情况。
由图①可知,当一阶导函数在某点(即驻点)处为0,二阶导函数在该点处小于0时,原函数在该驻点处取极大值: 由图②可知,当一阶导函数在某点(即驻点)处为0,二阶导函数在该点处大于0时,原函数在该驻点处取极 ...
- python中如何快速判断一个值是否大于、小于、等于某个值?
假设我们要判断变量seg的值是否大于5,怎么写最快呢? 下面的代码: seg_vj = (seg > 5) 即可实现~ 如果seg的值大于5,则上面语句中seg_vj的值为Ture 如果seg的 ...
- [shell] if else以及大于、小于、等于逻辑表达式
原文链接:http://blog.51cto.com/lxsym/866331 大多数情况下,可以使用测试命令来对条件进行测试.比如可以比较字符串.判断文件是否存在及是否可读等,通常用"[] ...
- linux中shell逻辑表达式if else以及大于、小于、等于
在linux中shell是常用的命令程序,在shell中又存在很多常见的逻辑判断, 下面我们就来看看这些逻辑判断的用法以及规范. 比如可以比较字符串.判断文件是否存在及是否可读等,通常用"[ ...
- shell判断大于、小于、等于
情景:在写脚本监控服务器是否重启时需要用到等于的判断,平时用到大于小于比较多,现在统一整理下 1.-gt:大于,greater than. 2.-eq:等于,equal. 3.-lt:小于,less ...
最新文章
- 基于三维点云数据的主成分分析方法(PCA)的python实现
- win10 android 登录,Microsoft现在允许您在Win10中运行Android应用程序
- [洛谷P3387]【模板】缩点
- 字符识别Python实现 图片验证码识别
- android list 比较,LinkedList 和 ArrayList 的区别
- Spring Boot(十四):spring boot整合shiro-登录认证和权限管理
- linux 下mysql等php的安装 lnmp
- JS判断客户端是否是iOS或者Android
- 推荐:CLR 完全介绍-一篇讲解CLR内存回收机制以及常见的调试技巧的文章
- LeetCode(748)——最短完整词(JavaScript)
- 一、node.js的windows环境设置
- 耐思尼克的“建站宝盒”怎么样呀?
- Lync 小技巧-53-Windows 2012 R2-加域-电脑-自动-登录
- 事务Transaction
- 图像加噪c语言,[转载]使用imnoise向图像中添加噪声
- 如何免费下载知网文献_知网文献下载工具_知网下载器Cnkidownloader
- Axure RP9 制作下拉式菜单
- 搭建微信小程序HTTPS服务器
- WIN32 2048游戏
- ime with the \acknowledge=true\ parameter:,watcher:[Watcher will be disabled