我是三元运营商的新手。我有以下功能。我正在努力了解发生了什么:
function toProperHex(hex) {
hex = hex.toLowerCase();
return hex ? hex != 'ffffff' ? '#' + hex : '#eee' : '#000';
}
我知道之前的事情是什么?条件是什么,接下来是变量在条件为真时变为的值,并且在冒号之后,如果条件不为真,则变为可变的变量。现在显然有两个条件和三个可能的结果。这是一个带有三元结构的if / else if语句。非常感谢澄清。
谢谢!
答案 0 :(得分:6)
这是一条线上的两个三元运算符。它等同于:
if(hex) {
if(hex != 'ffffff') {
return '#' + hex;
} else {
return '#eee';
}
} else {
return '#000';
}
我认为一行中的两个三元组是一个坏主意,使它们难以阅读。你基本上可以这样划分
return hex ? (hex != 'ffffff' ? '#' + hex : '#eee') : '#000';
圆括号帮助显示内在的三元。