JavaScript 中逻辑与 (&&) 和或 (||) 的灵活运用
介绍
布尔值是绝对值,true 或 false。这是非常明确的。 JavaScript 中的其他数据类型也具有这些固有值 true 和 false,但并不那么明显,因为它们看起来像 32、null、0 和“Hello”,而不是 true 和 false。知道所有值都具有这些固有值意味着我们可以对通常用于布尔值的所有数据类型执行操作。这为我们在编码时提供了更多的创造力和灵活性。
理解真值和假值
当使用 if 等控制流关键字和 AND (&&) 和 OR (||) 等逻辑运算符时,我们使用布尔值来实现某些结果。这些布尔值可以显式地与 true 或 false 一起使用,但我们经常使用 ===、 等比较运算符来生成它们。
如果我们不使用具有控制流或逻辑运算符的布尔值会发生什么?好吧,你很幸运!所有价值观本质上都是真或假,以帮助实现这一点。我们可以将所有值分为两类:truthy 或 falsy.
当试图判断一个值是真值还是假值时,最好记住 假值 值,因为它们的数量有限:
- false(布尔值)
- 空
- 未定义
- NaN(不是数字)
- 0(数值)
- ""(空字符串值)
其他一切都是真实。如果您不确定某些内容是真是假,或者遇到似乎不明确的独特情况,您可以随时创建一个 if 语句来查看以下代码块中的代码是否运行。
if (23) { console.log(“truthy”); } // Prints “truthy” else { console.log(“falsy”); } if (null) { console.log(“truthy”); } else { console.log(“falsy”); } // Prints “falsy”
逻辑与 (&&)
将布尔值与逻辑 AND (&&) 一起使用时,两个值都必须为 true 才能使逻辑运算符返回 true。否则,如果至少有一个值为 false,则返回 false。
console.log(false && false); // false console.log(true && false); // false console.log(true && true); // true
了解逻辑 AND (&&) 运算符的机制可以帮助您处理真值和假值。如果左边的值为 false,则返回;否则,返回右侧的值。
console.log(0 && 1); // 0 console.log("a" && ""); // "" (an empty string) console.log([] && [1, 2, 3]); // [1, 2, 3]
逻辑 AND (&&) 运算符想要返回一个假值,并且只有在两者都为真时才返回右侧的真值。你可以这样想这两个参数:
(左侧)仅当我是虚假值时才使用我。 &&(右侧)否则就用我吧。
逻辑或 (||)
当将布尔值与逻辑或 (||) 一起使用时,两个值都必须为 false 才能使逻辑运算符返回 false。否则,如果至少有一个值为 true,则返回 true。
console.log(false || false); // false console.log(true || false); // true console.log(true || true); // true
以下是逻辑 OR (||) 运算符的工作原理:如果左边的值为 true,则返回它;如果左边的值为 true,则返回它;否则,返回右侧的值。
console.log(1 || 0); // 1 console.log("" || "a"); // "a" console.log(undefined || null); // null console.log([] || [1, 2, 3]); // []
逻辑 OR (||) 运算符想要返回真值,并且只有在两者都是假值时才返回右侧的假值。你可以这样想这两个参数:
(左侧)仅当我是真实值时才使用我。 || (右侧)不然就用我吧。
AND (&&) 和 OR (||) 的创造性运用
期望输入时使用默认值
假设您正在创建一个代表一个人的对象,该对象具有描述该人的属性以及使用该对象中的其他属性向其他人打招呼的函数。
function Person(name) { // If name is undefined, this.name will // default to 'a person with no name' this.name = name || 'a person with no name'; this.greet = function() { console.log('Hello, I am ' + this.name + '.'); }; } // Create Person variables var tyler = new Person('Tyler'); var mystery = new Person(); // Without an input, this.name defaults to the // second option since name is undefined. // Call greet() from each Person object tyler.greet(); // "Hello, I am Tyler." mystery.greet(); // "Hello, I am a person with no name."
在上面的示例中,我们期望输入 name 参数,因此仅当 name 未定义(函数调用时没有参数)时才使用 OR (||) 运算中的第二个值。
需要多个输入
如果您正在创建对象并希望在创建对象之前确保拥有一定数量的输入,则可以将每个必需参数之间的逻辑 AND (&&) 运算符链接在一起。
function Person(firstName, lastName, age) { if (firstName && lastName && age) { this.firstName = firstName; this.lastName = lastName; this.fullName = `${this.firstName} ${this.lastName}`; this.age = age; this.greet = function() { console.log(`Hello, my name is ${this.fullName} and I'm ${this.age} years old.`); }; } // If any argument is missing, the object will only have this property. else { this.greet = function() { console.log(`Hello, I am not a fully formed Person.`) }; } } var tyler = new Person('Tyler', 'Meyer', 32); var brad = new Person('Brad', '', 38); tyler.greet(); // "Hello, my name is Tyler Meyer and I'm 32 years old." brad.greet(); // "Hello, I am not a fully formed Person."
if 语句在创建完整的 Person 对象之前检查每个参数的参数。如果即使有一个参数是假值,它也会使用 else 语句创建一个对象。因此,我们可以防止不完整的对象或为不完整的条目创建默认对象。
结论
如果在提供值之前需要默认值,则逻辑 OR (||) 运算符可能非常有用。如果您需要在继续之前需要多个值,逻辑 AND (&&) 运算符会非常有帮助。这些只是两个示例,当您继续探索这些运算符时,您会发现除了通常检查布尔值的真或假之外,还有更多使用这些运算符的方法。在考虑使用逻辑 AND (&&) 和 OR (||) 时,请记住这两件事:
- OR (||) :仅使用左侧的值,如果它是truthy。
- AND (&&) :仅在左侧的值为 falsy. 时才使用左侧的值
如果您有任何疑问,请在评论中留言。我很乐意进一步讨论这个话题。
编码愉快!
以上是JavaScript 中逻辑与 (&&) 和或 (||) 的灵活运用的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

探索前端中类似VSCode的面板拖拽调整功能的实现在前端开发中,如何实现类似于VSCode...
