这个速记运算符是怎么回事
What is going on in this shorthand operator?
我正在努力提高速记。 有人可以帮助澄清以下内容吗?
(obj.getValue("title")) ? message += "'ntitle: " + obj.getValue("title") : null;
是不是,如果 obj 有一个标题,然后将其添加到消息中,否则它是空的?
正如评论中指出的,这是一个三元运算符。这是一个非常奇怪的用法,因为它实际上并没有将运算符的"else"部分用于任何有用的事情,并且会更清楚地写成:
if (obj.getValue("title")) {
message += "'ntitle: " + obj.getValue("title");
}
只要obj.getValue("title")
是"真实的",它就会修改message
。
如果这是你拥有的代码,请借此机会使代码更清晰。
如果 obj 有一个标题,那么你是对的,然后把它添加到消息中,但为了严格起见,你应该知道 obj.getValue("title")
的值不应该是伪造的(0, null, undefined, '', NaN, false
)来传递条件。
您也可以在此处使用其他选项
obj.getValue("title") && (message += "'ntitle: " + obj.getValue("title"));
如果obj.getValue("title")
具有真实值,则第二个括号中的操作将执行。您还可以创建对obj.getValue("title")
的引用。
var title = obj.getValue("title");
title && (message += "'ntitle: " + title);
在这种情况下,方法getValue
只执行一次是更好的。
速记+=
将 obj.getValue("title")
的值附加到message
。
相关文章:
- Javascript袖珍参考,第121页:这是怎么回事;猴子补丁”;方法应该有效
- 基本的HTML Javascript程序.这是怎么回事
- 每次运行此代码时,我都会得到不同的结果,这是怎么回事
- jQuery extend 函数是怎么回事
- “Bada” - 这个JavaScript片段是怎么回事
- 如何使文本字段为空?这是怎么回事
- 自定义SVG签名在CODEPEN上有效,但在本地机器上无效-这是怎么回事
- 事件侦听器不会在IE中被调用 - 这是怎么回事
- HTML 中的空脚本标签是怎么回事
- 这个JavaScript片段是怎么回事
- 调用堆栈超出,甚至没有任何递归.这是怎么回事
- 带有奇怪输出的单行 - 字符串作为“这个”是怎么回事
- 这个速记运算符是怎么回事
- 网站似乎在没有向服务器发送密码的情况下登录用户;这是怎么回事
- 将多个值分配给一个变量.这是怎么回事
- 图片库的图片预装器?这是怎么回事
- 这个CSS渲染阻塞是怎么回事
- Javascript中的回调真的是方法调用吗?如果是的话,他们是怎么回事'级联'
- 有人能解释一下这部分是怎么回事吗
- 私有JS函数,这是怎么回事