JavaScript比较运算符

作者: 微语博客 | 来源:发表于2021-07-13 23:14 被阅读0次

比较运算符

比较运算符我们在数学中也总能看到,它们用于比较两个数值大小,在程序中也使用广泛,本篇文章主要讲解JS的比较运算符。

数值比较

比较的时候如果两边都是数值的话,那就特别简单的直接比较大小,而如果有一边不是数值的话,本质上是无法进行大小比较的,这时候JavaScript会有一个默认转换过程。所有的比较运算都会返回一个布尔值,即true(对)或false(错)。

在 JavaScript 中,它们的编写方式如下:

  • 大于 / 小于:a > ba < b
  • 大于等于 / 小于等于:a >= ba =< b
  • 检查两个值的相等:a == b,请注意双等号 == 表示相等性检查,而单等号 a = b 表示赋值。
  • 检查两个值不相等。不相等在数学中的符号是,但在 JavaScript 中写成 a != b。(注意是英文输入法下的符号)
  • 严格等于a===b判断两个值的类型和值是否都相等,严格等于也可以叫恒等于。
var x;
x = 5 > 3;//x=true 5显然大于3
var y;
y = 5 < "3"; //y=false 这里的字符串“3”默认转换为数字3
var z;
z = 5 == "5";//z=true 
var m;
m = 5 === "5";//m=false 这里三个等号表示严格等于,严格等于不会类型转换

字符串比较

除了数字比较,字符串之间也有比较。在比较字符串的大小时,JavaScript 会使用“字典(dictionary)”或“词典(lexicographical)”顺序进行判定。换言之,字符串是按字符(母)逐个进行比较的。比如下面:

console.log( 'Z' > 'A' ); // true
console.log( "Bee" > "B" ); // true

字符串的比较算法非常简单:首先比较两个字符串的首位字符大小;如果一方字符较大(或较小),则该字符串大于(或小于)另一个字符串,算法结束;否则,如果两个字符串的首位字符相等,则继续取出两个字符串各自的后一位字符进行比较;重复上述步骤进行比较,直到比较完成某字符串的所有字符为止;如果两个字符串的字符同时用完,那么则判定它们相等,否则未结束(还有未比较的字符)的字符串更大。

布尔值比较

布尔类型值的转换与比较,在与布尔类型作比较时,即与true和false的比较,true会默认转换为1,false默认转换0。比如下面的比较:

console.log( true == 1 );//true 因为true默认转为1
console.log( false == 0 );//true false转为0
console.log( true === 1 );//false 严格等于错误

null undefined 0 false NaN

null undefined 0 false是四个比较特殊的值,比较如下:

console.log( null == undefined );//true
console.log( null === undefined );//false
console.log( false == 0 );//true
console.log( null == 0 );//false
console.log( undefined == 0 );//false
console.log( null == false );//false
console.log( undefined == false );//false

其中undefined最为特殊,undefined 不应该被与其他值进行比较:

console.log( undefined > 0 ); // false
console.log( undefined < 0 ); // false 
console.log( undefined == 0 ); // false 

undefined不与任何值相等是因为在大小比较时转换为一个更特殊的值NaN(Not a Number),也叫非数,非数与任何值都不相等包括它自己。但它比较相等时会和null相等,却不会和false相等。

console.log( undefined == 0 ); // false
console.log( undefined == false ); // false 
console.log( undefined == NaN ); // false 
console.log( NaN == NaN );//false NaN不与任何值相等,包括自己

除了严格相等 === 外,其他但凡是有 undefined/null 参与的比较,我们都需要格外小心。除非你非常清楚自己在做什么,否则永远不要使用 >= > < <= 去比较一个可能为 null/undefined 的变量。对于取值可能是 null/undefined 的变量,请按需要分别检查它的取值情况。

相关文章

  • Javascript运算符

    JavaScript 运算符 JavaScript 运算符用于赋值,比较值,执行算术运算等。 JavaScript...

  • JavaScript比较运算符

    JavaScript 语言中有两种比较方式,转换类型比较运算符 == 和严格比较运算符 ===。其中严格比较运算符...

  • JavaScript比较运算符

    JavaScript 语言中有两种比较方式,转换类型比较运算符 == 和严格比较运算符 ===。其中严格比较运算符...

  • runoob js第三天

    JavaScript 比较 和 逻辑运算符 比较和逻辑运算符用于测试 true 或者 false。比较运算符x=5...

  • review javascript 27:JS运算符

    JavaScript 运算符主要包括:· 算术运算符· 赋值运算符· 比较运算符· 三元运算符· 逻辑运算符· 字...

  • 运算符

    JavaScript的运算符按运算符类型可以分为以下5种: (1)算术运算符;(2)比较运算符;(3)赋值运算符;...

  • 2019-01-04 一元运算符 逻辑运算符 赋值运算符 关系运

    运算符 1、javascript具有下列种类的运算符:算术运算符;等同运算符与全同运算符;比较运算符; 2、目的分...

  • 2018-11-30 第11天作业和当天总结

    1.导航制作 运算符 1、javascript具有下列种类的运算符:算术运算符;等同运算符与全同运算符;比较运算符...

  • 运算符(操作符)

    1. 运算符的分类 JavaScript中常用的运算符有: 算数运算符 递增和递减运算符 比较运算符 逻辑运算符 ...

  • JavaScript比较运算符

    比较运算符 比较运算符我们在数学中也总能看到,它们用于比较两个数值大小,在程序中也使用广泛,本篇文章主要讲解JS的...

网友评论

    本文标题:JavaScript比较运算符

    本文链接:https://www.haomeiwen.com/subject/owrepltx.html