冗余 if 语句?
Redundant if statement?
下面例子中的if
语句是否多余?
if (str[0] === ' ') {
str = str.trimStart()
}
对我来说似乎没有必要,因为 trimStart()
似乎对开头没有 space 的字符串没有任何负面影响。此外,如果字符串的开头确实有一个 space,那么您的 运行 操作次数是所需次数的两倍。
在上述情况下是否需要 if
语句?
if
不是必需的,但是你应该把修剪后的值保存在某个地方,比如
str = str.trimStart();
-- 编辑--
“是否需要 'if'...?”
你在原来做的测试是多余的。但是你可能想检查 str 是否有一个值 and/or 在调用 trimStart() 之前检查这个值是否是一个字符串,比如
if (str && typeof str === 'string') ...
鉴于编辑后的代码,if
语句在一种情况下可能有用 - 如果字符串以换行符开头(算作白色 space,并且会被修剪),则不是一个普通的 space。例如:
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 块不是必需的,因为如果字符串开头没有 space,trimStart
函数将不会产生任何效果。使用 if 语句对其没有任何影响,也不会有任何真正的性能优势。
下面例子中的if
语句是否多余?
if (str[0] === ' ') {
str = str.trimStart()
}
对我来说似乎没有必要,因为 trimStart()
似乎对开头没有 space 的字符串没有任何负面影响。此外,如果字符串的开头确实有一个 space,那么您的 运行 操作次数是所需次数的两倍。
在上述情况下是否需要 if
语句?
if
不是必需的,但是你应该把修剪后的值保存在某个地方,比如
str = str.trimStart();
-- 编辑--
“是否需要 'if'...?”
你在原来做的测试是多余的。但是你可能想检查 str 是否有一个值 and/or 在调用 trimStart() 之前检查这个值是否是一个字符串,比如
if (str && typeof str === 'string') ...
鉴于编辑后的代码,if
语句在一种情况下可能有用 - 如果字符串以换行符开头(算作白色 space,并且会被修剪),则不是一个普通的 space。例如:
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 块不是必需的,因为如果字符串开头没有 space,trimStart
函数将不会产生任何效果。使用 if 语句对其没有任何影响,也不会有任何真正的性能优势。