js,ts中简写符号大全

falsy 值(虚值):是在布尔值Boolean上下文中认定为 false 的值。在 JavaScript 中只有 8 个 falsy 值,包括undefined、null、false、空字符串 (双引号 ""、单引号’’、反引号 ``)、NaN、0。

nullish 值:要么是 null 要么是 undefined 。nullish 值总是 falsy 。

一. js中符号 
1.   || 

        如果||前面的值是0 '' false null undefined NaN其中的任意一种,则直接返回||后面的值 

function(obj){
        var a = obj || {}
    }
    // 等价于 =>>
    function(obj){
        var a;
        if( obj === 0 || obj === "" || obj === false || obj === null || obj === undefined || isNaN(obj)
        ){
            a = {}
        } else {
            a = obj;
        }
    }
 2.   ??

        如果||前面的值是null undefined 其中的任意一种,则直接返回??后面的值 

function(obj){
        var a = obj ?? {}
    }
    // 等价于 =>>
    function(obj){
     var a;
        if( obj === null || obj === undefined){
            a = {}
        } else {
            a = obj;
        }
    }
 3.  ?. 可选链

在未定义属性时使用可选链运算符,undefined将返回而不是错误。这可以防止你的代码崩溃 

const personal = {
        name: "lwl",
        address: {
            state: "New York"
        },
        
    }

    // 使用可选链操作符
    console.log(personal?.address?.ZIPCode) // 输出:undefined
    
    personal.array?.map()// 返回undefined,不会崩溃
 4.  !!

 将表达式强制转化为boolean值运算,运算结果为true或者false
 falsy值 返回 false,空数组返回true

5.  ??=

逻辑空赋值运算符(x ??= y)仅在 x 是 nullish(null 或 undefined) 时对其赋值

 const a = { duration: 50 };
    a.duration ??= 10;
    console.log(a.duration);
    // expected output: 50

6. !!=    &&=
逻辑或赋值运算符(x !!= y)仅在 x 是 假值(Boolean值) 时对其赋值
逻辑或赋值运算符(x &&= y)仅在 x 是 真值 时对其赋值

 var a = 0;
 a ||= 10;
 console.log(a); //输出10

var a = 1;
 a &&= 10;
 console.log(a); //输出10
 二.ts 中 ? !

 ts比js多了2个符号 即?  !

1.? 

  表示该属性或参数为可选项

  interface IDemo {
        x?: number   // 参数为可选项
    }
2. !

 表示类型推断排除null、undefined,用于属性后面

// 由于x是可选的,因此parma.x的类型为number | undefined,无法传递给number类型的y,因此需要用x!
    interface IDemo {
        x?: number   // 参数为可选项
    }

    let y:number  // 参数为number类型

    const demo = (parma: IDemo) => {
        y = parma.x!  // 变量值可空
        return y
    }
    const personal = {
        name: "lwl",
        address: {
            state: "New York"
        },    
    }
    personal.array!.map()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cola-blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值