首页 > 其他分享 >Day 28 28.1 JS进阶之三元运算符

Day 28 28.1 JS进阶之三元运算符

时间:2023-04-27 16:25:04浏览次数:47  
标签:console 进阶 max 28 运算符 let 三元 log

JS工具之三元运算符

【1】格式

三元运算符:  条件表达式?语句1:语句2;  
let a = 10;
let b = 20;
let d = a > b? a: b
console.log(d);
  • 注释:
    • 条件运算符在执行时,首先对条件表达式进行求值,
      •         如果该值为true,则执行语句1,并返回执行结果
        
      •         如果该值为false,则执行语句2,并返回执行结果
        
      •         如果条件的表达式的求值结果是一个非布尔值,
        
      •         会将其转换为布尔值然后在运算
        

【2】意义

三运运算符可以简化大部分if体系中第二种格式if...else的书写,例如:
  • if .... else ....

    int max = 0;
        
    if (a > b) {
        max = a;
    } else {
        max = b;
    }
    console.log(max);
    
  • 三元运算符改写

    int max = a > b ? a : b;
    console.log(max);
    

【3】案例解析:

let a = 10;
let b = 20;
let c = 5;
let d = 17;

let e;
let m;

e = (e = a > 3 ? b : c, m = e < b++ ? c-- : a = 3 > b % d ? 27: 37, m++)
// e = a > 3 ? b : c // e=b=20
// m = e < b++ ? c-- : a = 3 > b % d ? 27: 37// m=a=37
// e = m++ // e= 37 m=38 
console.log(e);
console.log(c);
console.log(m);

【4】注意

【4.1】

  • 三运运算符可以简化大部分的if...else...语句的书写,但并不是所有的都可以被改写,例如:

    if (a > b) {
        console.log(a);
    } else {
        console.log(b);
    }
    
  • 这种情况三元运算符就不以改写,因为没有值的接收。

    • 三元运算符是有返回值的,我们可以接收返回值再输出,或者直接进行输出。
    //定义返回值进行接收
    int max = a > b ? a : b;
    //输出返回值
    console.log(max);
    
    //直接输出三元运算的结果
    console.log(a > b ? a : b); 
    

【4.2】

  • 三元运算符当定义了新的变量去接收返回值时,必须同时保证表达式左边和表达式右边都符合接收值数据类型的要求,不然就会出现数据溢出和精度损失的问题。

    //程序报错,因为表达式左边为int类型,右侧为double 类型,和int类型的接收值不一致
    int number = 5 > 6 ? 5.6 : 20;
    

标签:console,进阶,max,28,运算符,let,三元,log
From: https://www.cnblogs.com/dream-ze/p/17359246.html

相关文章

  • 条款28.理解引用折叠
     理解引用折叠以下面这个模板为例template<typenameT>voidfunc(T&&param);12模板形参T的推导类型中,会把传给param的实参是左值还是右值的信息给编码进去。编码机制是直截了当的:如果传递的实参是个左值,T的推导结果就是个左值引用类型;如果传递的实参是个右值,T的推导结......
  • Day 27 27.2 JS进阶之window对象
    JS-Function对象之window对象window是客户端浏览器对象模型的基类,window对象是客户端JavaScript的全局对象。一个window对象实际上就是一个独立的窗口,对于框架页面来说,浏览器窗口每个框架都包含一个window对象。(1)全局作用域在客户端浏览器中,window对象是访问BOM......
  • Day 27 27.1 JS进阶-Function对象之prototype对象
    JS-Function对象之prorotype原型对象案例1://创建方式1varfoo=newFunction("console.log('helloworld!')")foo()//创建方式2functionPerson(){console.log("helloperson")}varp1=Person()console.log(p1)varp2=newPers......
  • Day 27 27.3 JS进阶之ES6新语法
    JS工具之三元运算符【1】格式三元运算符:条件表达式?语句1:语句2;leta=10;letb=20;letd=a>b?a:bconsole.log(d);注释:条件运算符在执行时,首先对条件表达式进行求值,如果该值为true,则执行语句1,并返回执行结果如果该值为false,则......
  • Day 27 27.3 JS进阶之ES6新语法
    JS进阶之ES6新语法1.var、let以及constES6中引入了关键字let和const作为var的替代。它们非常有用,如今几乎每个JavaScript开发人员都在使用它们。与关键字var不同,这两个关键字具有块作用域。这意味着当你在块中声明它们时,它们只能在该块{}内访问。//f......
  • 数据库SQL语句从入门到进阶
    创建表createtablepeople(idint(11),namechar(11),phonechar(20),pwdvarchar(40)); 2. 增加语句    insertintopeoplevalues(9,'gang',13023299931,'qwert');3.向特定列增加语句insertintopeople(id,name,phone)values(9,'gang',13023299931);4......
  • Linux 进阶
    Linux定制篇1shell1.1定义1.2入门案例1.3变量环境变量位置参数变量预定义变量1.4运算法1.5条件判断1.6流程控制ifcaseforwhileread获取输入1.7函数系统函数自定义函数1.8定时......
  • Django框架——ORM执行SQL语句、神奇的双下划线、外键字段的创建、跨表查询、进阶操作
    ORM执行SQL语句有时候ORM的操作效率可能偏低我们是可以自己编写SQL的方式一: models.User.objects.raw('select*fromapp01_user')方式二: fromdjango.dbimportconnectioncursor=connection.curson()cursorexecute('selectnamefromapp01_user')prin......
  • [ABC128D] equeue
    2023-01-14题目传送门翻译难度&重要性(1~10):题目来源AtCoder题目算法暴力,贪心解题思路由题意可以得出,数据只有\(n\leq50,k\leq100\)。所以,可以使用暴力,枚举从左右两边取的个数(只能从两边取),用一个数组记录下负数,去玩两边之后,将负数排个序,再用剩下的步骤,每次将最小的......
  • [ABC128E] Roadwork
    2023-01-14题目传送门翻译难度&重要性(1~10):题目来源AtCoder题目算法区间覆盖,线段树,双堆解题思路可以将问题转化为区间覆盖问题和单点查询问题。一共会有\(3\)种操作:\(1.\)插入一个区间。\(2.\)删除一个区间。\(3.\)查询一个区间。想到这我是想用双堆去做。......