首页 > 编程语言 >【JavaScript 教程】第四章 程序流程02— 三元运算符使您的代码更简洁

【JavaScript 教程】第四章 程序流程02— 三元运算符使您的代码更简洁

时间:2022-11-21 16:05:30浏览次数:62  
标签:02 bar JavaScript else 运算符 var 三元

【JavaScript 教程】第四章 程序流程02— 三元运算符使您的代码更简洁_默认参数

英文 | https://www.javascripttutorial.net/

译文 | 杨小爱


在上节中,我们学习了JavaScript 程序流程中的if else语句,错过的小伙伴可以点击文章《 ​​【JavaScript 教程】第四章 程序流程01— JavaScript if else 语句​​》进行学习。

那么,在今天的教程中,我们将一起来学习如何使用 JavaScript 三元运算符使您的代码更加简洁。 

JavaScript 三元运算符简介

当您想在特定测试的计算结果为true时执行代码块,您通常会使用if-else语句。例如,如果age大于16,则允许该人开车可以编码如下:

var age = 19;
var canDrive;
if (age > 16) {
canDrive = 'yes';
} else {
canDrive = 'no';
}

在此示例中,您可以使用三元运算符作为if-else语句的快捷方式,如下所示:

var age = 19;
var canDrive = age > 16 ? 'yes' : 'no';

这样,代码看起来干净多了。

一般来说,三元运算符的语法如下:

condition ? expression_1 : expression_2;

JavaScript 三元运算符是唯一接受三个操作数的运算符。

condition是一个表达式计算结果为布尔值(true或false),无论是true或false。如果条件为true,则三元运算符返回expression_1,否则返回expression_2。

expression_1,和expression_2是任何类型的表达式。

JavaScript 三元运算符示例

设置默认参数

ES5 中三元运算符的典型用途之一是设置函数的默认参数,例如:

function foo(bar) {
bar = typeof(bar) !== 'undefined' ? bar : 10;
console.log(bar);
}
foo(); // 10
foo(20); // 20

在本例中,如果不传递bar参数,则其值设置为10。否则,bar参数使用其传递的值,在本例中为 20。

请注意,ES6引入了一种更好的方法来设置函数的默认参数。

执行多项操作

可以在三元运算符的每种情况下执行多个操作,每个操作用逗号分隔。请参阅以下示例:

var authenticated = true;
var nextURL = authenticated ? (
alert('You will redirect to admin area'),
'/admin'
) : (
alert('Access denied'),
'/403'
);
// redirect to nextURL here
console.log(nextURL); // '/admin'

在此示例中,三元运算符的返回值是逗号分隔列表中的最后一个值。

简化三元运算符

请参阅以下示例:

var locked = 1;
var canChange = locked != 1 ? true : false;

如果locked为 1,则canChange变量设置为false,否则设置为true。

在这种情况下,您可以使用布尔表达式来简化它,如下所示:

var locked = 1;
var canChange = locked != 1;

使用多个 JavaScript 三元运算符

以下示例显示如何在同一表达式中使用两个三元运算符:

var speed = 90;
var message = speed >= 120 ? 'Too Fast' : (speed >= 80 ? 'Fast' : 'OK');
console.log(message);

当三元运算符使代码更易于阅读时,最佳做法是使用它。如果逻辑包含许多if...else语句,则不应使用三元运算符。

总结

通过本教程的学习,我们知道了如何使用 JavaScript 三元运算符,您可以将其用作 if-else 语句的快捷方式,使您的代码更简洁。


【JavaScript 教程】第四章 程序流程02— 三元运算符使您的代码更简洁_默认参数_02


【JavaScript 教程】第四章 程序流程02— 三元运算符使您的代码更简洁_三元运算符_03


标签:02,bar,JavaScript,else,运算符,var,三元
From: https://blog.51cto.com/u_15809510/5874065

相关文章

  • 【JavaScript 教程】第四章 程序流程01— JavaScript if else 语句
    英文 | https://www.javascripttutorial.net/译文|杨小爱在上节中,我们学习了JavaScript逻辑运算符,错过的小伙伴可以点击文章《​​【JavaScript教程】第三章运算符04......
  • 如何遍历一个普通的 JavaScript 对象?
    英文| https://javascript.plainenglish.io/how-to-loop-through-a-plain-javascript-object-e3d1a45c2319翻译|杨小爱JavaScript对象是通过向它们添加属性来动态创建......
  • 24个带有示例的 JavaScript 数组方法
    英文| https://javascript.plainenglish.io/a-6-minute-guide-to-24-javascript-array-methods-52bf5f0e209c翻译|杨小二1、创建数组在Javascript中有多种创建数组的方......
  • 11个提高技能的JavaScript 技巧,附中奖者名单
    英文|https://levelup.gitconnected.com/12-javascript-features-youve-probably-never-used-db932c413cdd翻译|杨小二当我开始学习JavaScript时,我总是很想找到可以节......
  • javaScript 纯函数
    一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数。为什么要煞费苦心地构建纯函数?因为纯函数非常靠谱,执行一个纯函数你不用担......
  • 2022-11-21 vue+uniapp之小程序 video iphone手机 视频播放卡顿
    如题。卡一两次可以当成是视频缓存问题,可要是一直卡者不动那就是代码问题了。经测试,android和ios手机存在卡顿情况,ios较为明显一点,原因我猜测是在小程序中video这个标签在......
  • [WSDM 2022]An Effective Graph Learning based Approach for Temporal Link Predicti
    [WSDM2022]AnEffectiveGraphLearningbasedApproachforTemporalLinkPrediction:TheFirstPlaceofWSDMCup2022总结传统模型+拓扑结构中生成更多的特征实现......
  • 2022.11.20 第八次组会记录
    团队:集农广益小组地点:桃园食堂时间:下午三点参与人:全体人员组会内容摘要:详细文档的编写以及代码的分工实现组会主要内容:1.对问答平台的详细设计进行讨论设计2.讨......
  • kali linux 拓荒-202203版本
    记录学习过程。如有疑问请在下方留言。感谢!!梅西梅西1、kali是基于debian系统改编2、默认账户/密码:kali/kali3、更新系统:sudoaptupdate&&aptupgrade&&aptdist-......
  • 02.核心模块
    corespring以Bean的方式来组织和管理java应用中的各个组件,及其关系,Beanfactory使用loc模式将应用的配置和依赖性规范与实际的应用代码分开,bean使用依赖注入的方式,实现控......