簡體   English   中英

冗余 if 語句?

[英]Redundant if statement?

以下示例中的if語句是否多余?

if (str[0] === ' ') {
  str = str.trimStart()
}

這對我來說似乎沒有必要,因為trimStart()似乎對開頭沒有空格的字符串沒有任何負面影響。 此外,如果字符串的開頭確實有一個空格,則您將根據需要運行兩倍的操作。

在上述情況下是否需要if語句?

鑒於編輯過的代碼,在一種情況下if語句可能很有用 - 如果字符串以換行符開頭(這算作空格,並會被修剪),而不是一個普通的空格。 例如:

 const parseStr = (str) => { if (str[0] === ' ') { str = str.trimStart() } console.log(str.length); }; parseStr('\\nfoo'); parseStr(' foo'); parseStr('foo');

如果無條件調用trimStart ,則無論以下情況如何,都將修剪換行符:

 const parseStr = (str) => { str = str.trimStart() console.log(str.length); }; parseStr('\\nfoo'); parseStr(' foo'); parseStr('foo');

if不是必需的,但您應該將修剪后的值保存在某處,例如

str = str.trimStart();

- 編輯 -

“‘如果’有必要嗎……?”

你在原文中做的測試是多余的。 但是您可能想在調用 trimStart() 之前檢查 str 是否具有值和/或檢查該值是否為字符串,例如

if (str && typeof str === 'string') ...

if 塊不是必需的,因為如果字符串開頭沒有空格,則trimStart函數將沒有任何效果。 擁有 if 語句對它沒有任何影響,也不會真正帶來任何真正的性能優勢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM