Javascript这行代码是什么意思
Javascript what does this line of code mean
我在学习Javascript,但不知道为什么这一行是这样写的。 有人可以帮助解释为什么javascript要写这样的代码吗?
cinnamon && (this.cinnamon = [1, "stick", "Saigon"])
是什么意思?
我明白它上面的第一行。 第二行似乎在做一个比较运算符 &&,但没有将其分配给任何变量。
var VanillaBean = function(vanilla, cinnamon) {
this.vanilla = [1, "bean", vanilla ? vanilla : "Madagascar Bourbon"];
cinnamon && (this.cinnamon = [1, "stick", "Saigon"]); //?????
};
VanillaBean.prototype = {
heavyCream: [1, "cup", "Organic Valley"],
halfHalf: [2, "cup", "Organic Valley"],
sugar: [5/8, "cup"],
yolks: [6]
};
var vanilla = new VanillaBean("Tahitian", true);
console.dir(vanilla);
行:
cinnamon && (this.cinnamon = [1, "stick", "Saigon"]);
相当于:
if (cinnamon) {
this.cinnamon = [1, "stick", "Saigon"];
}
逻辑AND
运算符的短路特性有时以这种方式使用,因为生成的代码比完整的if
语句短。
也就是说,我个人不鼓励编写这样的代码,因为它的可读性和可维护性不如if
语句。
逻辑 && 运算符是"lazy"的,如果第一个表达式为真,它只计算第二个表达式。 它相当于if(cinnamon){ this.cinnamon=[...];}
类似地,cinnamon || this.cinnamon=[...];
等效于if(!cinnamon){this.cinnamon=[...];}
,因为当您计算 OR 时,仅当第一个表达式为 false 时,才需要测试(并因此执行)第二个表达式。从补语中最好理解:
(false && anything)=false,所以不要费心执行第二个套件
(true || anything)=true,所以不要费心执行第二个套件
相关文章:
- @@(“at at”)在ES6 JavaScript中是什么意思
- minimy javascript是什么意思?Backbone.js
- var w = q||问2;这个表达式是什么意思
- 函数(i,val)在javascript中是什么意思
- 问号在这段代码中是什么意思
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- ||{}在javascript中是什么意思
- “转义字符串”在Regex中是什么意思?(Javascript)
- 这个代码是什么意思(history.replaceState和history.pushstate)
- :: 是什么意思
- 这是什么意思?getData([renderData]);
- MDN文档中关于弄清楚XUL元素的段落是什么意思:“如何将覆盖扩展转换为无重启”
- require('file_path')后面的后缀(模块)在javascript文件中是什么意思
- Twitter Bootstrap的Tab插件中“data-api”是什么意思
- 箭头函数 '() => {}' 在 Javascript 中是什么意思?
- 在这种情况下,“foo[x]”是什么意思?
- 在 http 请求中添加事件侦听器 ( request.on ) 是什么意思?而笏就是它的用途
- 这种格式是什么意思 T00:00:00.000Z
- 这行是什么意思“ operator.indexOf(btnVal) > -1”
- JQuery:这段代码是什么意思