[英]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.