当前位置: 首页 > news >正文

总结JavaScript中的条件判断与比较运算

一、条件判断

JavaScript 中有三种方法可以用来进行条件判断:

1、使用 if-else 语句。这种方法用于在特定条件为 true 时执行一段代码,否则执行另一段代码。例如:

let a = 5;
if (a > 10) {console.log("a is greater than 10");
} else {console.log("a is not greater than 10");
}

 2、使用 switch 语句。这种方法用于在多个条件之间做出选择,并在符合特定条件时执行相应的代码块。例如:

let b = "red";
switch (b) {case "red":console.log("The color is red");break;case "blue":console.log("The color is blue");break;default:console.log("The color is neither red nor blue");
}

 3、使用三元运算符 ( ? : )。这种方法用于在特定条件为 true 时返回一个值,否则返回另一个值。例如:

let c = 5;
let d = (c > 10) ? "c is greater than 10" : "c is not greater than 10";
console.log(d);

 

在 JavaScript 中 三元运算符和 if-else 语句的功能是类似的,但是三元运算符的语法更简洁,适用于比较简单的条件判断。

二、比较运算

1、使用关系运算符(>,<,>=,<=,==,!=,===,!==)。这些运算符可以比较两个数据,并返回一个布尔值(true 或 false)。例如:

  • == 比较运算符会在比较两个变量值时自动进行类型转换。例如:
let a = 5;
let b = "5";
console.log(a == b); // true

 === 比较运算符不会进行类型转换,它会比较两个变量值和类型是否相同。例如:

 

let a = 5;
let b = "5";
console.log(a === b); // false

!= 比较运算符会在比较两个变量值时自动进行类型转换,如果值不相等返回 true。例如:

let a = 5;
let b = "5";
console.log(a != b); // false

 !== 比较运算符不会进行类型转换,它会比较两个变量值和类型是否不同。例如:

let a = 5;
let b = "5";
console.log(a !== b); // true

 

通常建议使用 === 和 !== 比较运算符,因为它们不会进行类型转换,可以避免一些错误。

  • >,<,>=,<= 比较运算符用于比较两个变量的大小关系,如果符合条件返回 true。例如:
let a = 5;
let b = 10;
console.log(a > b); // false
console.log(a < b); // true
console.log(a >= b); // false
console.log(a <= b); // true

 2、使用 Object.is() 方法。这个方法可以用来确定两个值是否相等,并返回一个布尔值(true 或 false)。例如:

let c = 5;
let d = "5";
console.log(Object.is(c, d)); // false

 

注意:与 == 的不同之处是,== 会尝试转换数据类型,而 Object.is() 不会。

3、使用 JSON.stringify() 方法将数组或对象转换为字符串,然后使用关系运算符或 Object.is() 方法来比较字符串。例如:

let e = [1, 2, 3];
let f = [1, 2, 3];
console.log(JSON.stringify(e) === JSON.stringify(f)); // true

 4、使用第三方库 lodash 的 isEqual() 方法。这个方法可以用来深度比较两个数组或对象,并返回一个布尔值(true 或 false)。例如:

let g = {a: 1, b: 2};
let h = {b: 2, a: 1};
console.log(_.isEqual(g, h)); // true

 

5、使用第三方库 Ramda 的 equals() 方法,具有与 lodash 的 isEqual() 方法类似的功能。

注意:上面提到的 JSON.stringify() 和 lodash/Ramda 的方法都是深比较,这意味着它们将递归比较整个数组或对象的所有属性

6、instanceof: 用于判断一个对象是否是某个构造函数的实例。

let obj = new Object();
console.log(obj instanceof Object); // true
console.log(obj instanceof Array); // false

 7、in: 用于判断一个对象是否有某个属性。

let obj = {a:1,b:2};
console.log("a" in obj); // true
console.log("c" in obj); // false

 

这些运算符的结果也是一个布尔值,可以在条件判断中使用。

注意:在使用 instanceofin 时要注意对象类型和作用域的问题。

http://www.lryc.cn/news/25143.html

相关文章:

  • 算法练习-排序(一)
  • CentOS7.6快速安装Docker
  • CentOS 7安装N卡驱动和CUDA和cuDNN
  • Java开发 - 分页查询初体验
  • C语言循环语句do while和嵌套循环语句讲解
  • 【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【7】:拼接图像
  • 王道操作系统课代表 - 考研计算机 第二章 进程与线程 究极精华总结笔记
  • C++修炼之练气期三层——函数重载
  • 在linux上运行jar程序操作记录
  • 【STM32】入门(十二):实时操作系统RTOS和通用操作系统GPOS的区别
  • 2023-3-1刷题情况
  • Web前端学习:五 - 练习
  • 软件测试之测试用例设计方法—等价类划分法
  • gdb常用命令详解
  • 2022 年江西省职业院校技能大赛高职组“信息安全管理与评估”赛项样题
  • 射频调试的习惯
  • centos7上安装mysql8.0
  • 如何使用BackupOperatorToDA将Backup Operators用户权限提升为域管理员
  • 百度文心大模型开发者斩获CCF BDCI大赛唯一『最佳算法能力奖』
  • 合宙Air780E|硬件元数据|LuatOS-SOC接口|官方demo|学习(21):hmeta(本库尚在开发中)
  • Educational Codeforces Round 144 (Rated for Div. 2) (A-C)
  • 机器学习100天(三十三):033 KD树的Python实现
  • matlab-数据和数据运算
  • 怕被AI取代快想办法“攒”个“数字第二大脑”
  • 【zlkmedia】rtp处理代码走读
  • SSM SpringBoot vue 在线教学质量评价系统
  • 如何使用Codecepticon对C#、VBA宏和PowerShell源代码进行混淆处理
  • delphi fmx android11,12删除照片
  • Android - API对应版本名称
  • 22.3.1 Educational Codeforces Round 144 (Rated for Div. 2) A~C