2022-12-30 06:21:21
三元运算符是 JavaScript 中 if/else 语句的简写形式,语法为condition ? exprIfTrue : exprIfFalse。它通过问号(?)和冒号(:)分隔条件与表达式,根据条件真假返回不同结果。
语法结构:条件 ? 表达式1 : 表达式2
条件为真时执行表达式1,为兄神闹假时执行表达式2。
例如:a == 10 ? console.log("true") : console.log("false")。
与 if/else 的对比:
传统写法:if (a == 10) { console.log("variable is ten!");} else { console.log("variable is not ten!");}
三元运算符简化后:a == 10 ? console.log("variable is ten!") : console.log("variable is not ten!");
更优写法:利用返回值直接嵌入逻辑:console.log(a == 10 ? "variable is ten!" : "variable is not ten!");
三元运算符可简洁地为变量赋值,替代简单的 if/else:
// 传统写法let b;if (a === 10) { b = a * 5;} else { b = a * 2;}// 三元运算符let b = a === 10 ? a * 5 : a * 2;2. 嵌套条件通过链式调用实现多条件判断,但需谨慎使用以避免可读性下降:
// 传统嵌套 if/elseif (a === 1) { console.log("1");} else if (a === 2) { console.log("2");} else { console.log("a is not 1 or 2");}// 三元嵌套console.log(a === 1 ? "1" : a === 2 ? "2" : "a is not 1 or 2");注意:嵌套超过两层时会显著降低代码可读性。
3. React 中的条件渲染在 JSX 中瞎大,三元运算符可简化条羡罩件渲染逻辑:
// 传统写法if (isPacked) { return <li className="item">{name} ✅</li>;}return <li className="item">{name}</li>;// 三元运算符return ( <li className="item"> {isPacked ? name + ' ✅' : name} </li>);通过合理使用三元运算符,可以显著提升代码的简洁性,但需始终以可读性和可维护性为首要原则。