JavaScript 条件判断与比较运算

更新日期: 2023-01-30阅读: 761标签: 运算

一、条件判断

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

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

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

链接: https://fly63.com/article/detial/12339

js除了Math.floor方法,还可以通过位运算|,>>实现向下取整

我们都知道通过Math.floor()方法可实现数值的向下取整,得到小于或等于该数字的最大整数。除了Math.floor方法,还可以使用位运算|,>>来实现向下取整哦

es6 扩展运算符 三个点(...)

扩展运算符( spread )是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。

巧用JS位运算

位运算的方法在其它语言也是一样的,不局限于JS,所以本文提到的位运算也适用于其它语言。位运算是低级的运算操作,所以速度往往也是最快的

js中使用位运算,让执行效率更高

平常的数值运算,其本质都是先转换成二进制再进行运算的,而位运算是直接进行二进制运算,所以原则上位运算的执行效率是比较高的,由于位运算的博大精深,下面通过一些在js中使用位运算的实例

js各种取整方式及方法_四舍五入、向上取整、向下取整

js实现:四舍五入、向上取整、向下取整等方法。parseInt、Math.ceil、Math.round、Math.floor、toFixed等的使用

JavaScript循环计数器

JS经常会遇到延迟执行的动作,并且失败后自动尝试,尝试N次之后就不再尝试的需求,今天刚好又遇到,于是写个闭包,以后不断完善继续复用。检查并计数第一个参数用来标记是尝试哪个动作的,第二个参数是最大尝试次数

js 位运算符_js按位运算符及其妙用

大多数语言都提供了按位运算符,恰当的使用按位运算符有时候会取得的很好的效果。在我看来按位运算符应该有7个:& 按位与、| 按位或、^ 按位异或、~ 按位非

PHP取整、四舍五入取整、向上取整、向下取整、小数截取

PHP取整数函数常用的四种方法:1.直接取整,舍弃小数,保留整数:intval(); 2.四舍五入取整:round(); 3.向上取整,有小数就加1:ceil(); 4.向下取整:floor()。

JavaScript 中的相等操作符 ( 详解 [] == []、[] == ![]、{} == !{} )

ECMAScript 中的相等操作符由两个等于号 ( == ) 表示,如果两个操作数相等,则返回 true。相等操作符会先转换操作数(通常称为强制转型),然后比较它们的相等性。

关于js开发中保留小数位计算函数(以向上取整或向下取整的方式保留小数)

前端工作中经常遇到数字计算保留小数问题,由于不是四舍五入的方式不能使用toFixed函数,本文采用正则表达式匹配字符串的方式,解决对数字的向上或向下保留小数问题:

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!