javascript - typescript 使用逻辑运算符为变量赋值

标签 javascript typescript

export class SearchResult {
    id: string;
    constructor(obj?: any) {
        this.id = obj && obj.id || null;
    }
}

obj && obj.id || 是什么意思null 是什么意思?我不明白这种语法。

最佳答案

虽然您的代码使用的是 Typescript,但这个问题实际上与 JavaScript 有关。

在 JavaScript 中:

true && 表达式

将导致计算表达式

至于:

假 && 表达式

这将计算为 false,导致 expression 不被计算。

因此在你的构造函数中,如果 obj 是 truthy (例如,既不是 null 也不是未定义的)表达式将被评估,在这种情况下访问 obj.id 并将其值分配给 this.id。如果 obj 不是 truthy,那么它将计算为 false,并将 null 值分配给 this.id。

这种技术在 React 中经常使用,参见 here举个例子。

关于javascript - typescript 使用逻辑运算符为变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54973404/

相关文章:

javascript - Node.JS Google Calendar Promise 返回事件列表

javascript - PhantomJS 中的窗口对象

javascript - D3 在 X 轴上平移直线时,沿 mousemove 中断的路径移动圆

如果键是模板文字 `string` 或 union,则键的 Typescript 类型为 `a/${string}`

TypeScript:通过重用键而不是值从其他接口(interface)派生接口(interface)

javascript - Protractor :缩小

javascript - 并行执行中两个实例之间的 Protractor 延迟

javascript - scrollIntoViewIfNeeded 脚本不适用于 Protractor

javascript - Div 元素仅在点击后正确加载

javascript - _co.photo 是未定义的控制台错误和错误上下文,但代码按预期工作