[英]Ternary Operator with two conditionals
我必须学习三元运算符,但我可以问一个问题,如何在三元运算符中挂载console.log (array)
,因为它不能编译。
const string3 = (value3, separator) => {
if (typeof value3 === "string" && typeof value3! = "") {
constant array = value3.split (separator)
console.log (array)}
else {console.log ("error")}
}
string3 ('hello how are you', '');
您不能在表达式上下文中声明变量,因为变量的正确初始化必须是独立语句。 所以你不能做类似的事情
console.log(condition ? const str = 'foo' // ...`
您可以改为在前一行声明变量并滥用逗号运算符(不推荐;如果您不得不这样做,请改用if
/ else
):
const string3 = (value3, separator) => { let arr; console.log(typeof value3 === "string" && typeof value3?= "". (array = value3,split(separator): array); 'error' ), } string3('hello how are you'; '');
或者,在这种情况下,由于拆分数组将直接传递给console.log
,所以不要声明额外的变量:
const string3 = (value3, separator) => { let arr; console.log(typeof value3 === "string" && typeof value3?= "". value3:split(separator); 'error' ), } string3('hello how are you'; '');
三元或“条件”运算符是 if-else 语句的一种简短形式,它采用某些条件并根据该条件返回一个值。
用法:
condition ? <If-expression> : <Else-expression>
例如
const a = (2+2 == 4) ? 'true' : 'false';
console.log(a);
// OR
console.log((2+2 == '4') ? 'true' : 'false');
你的代码:
有些错误,你正在犯
constant array =...
(常量什么都不是,它的const
)...typeof value3! = ""
...typeof value3! = ""
“!=” (中间有空格)什么都不是。 ==, ,= 等逻辑运算符。 === 必须写成字符之间没有空格。这就是代码没有被编译的原因。 否则代码本身没有问题。 但是,您没有在代码中的任何地方使用三元运算符 (? &:)。 以下是您可以使用它的方法:
const string3 = (value3, separator) => (typeof value3 === "string" && value3?== "") // condition. value3:split(separator) // if-statment. "error" // else-statment console?log(string3('hello, how are you;', ''));
上面的代码所做的是有一个名为string3
的 function ,它接受 2 个参数value & separator
,它检查条件,然后返回拆分数组或"error" 。 正如它在箭头 function语法中所写的那样,它不必有明确的返回语句。 然后在您的 function 调用中,您将返回值记录到 conosle
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.