Javascript 冗余if语句?
以下示例中的Javascript 冗余if语句?,javascript,string,performance,trim,Javascript,String,Performance,Trim,以下示例中的if语句是否冗余 if (str[0] === ' ') { str = str.trimStart() } 这对我来说似乎没有必要,因为trimStart()似乎不会对开头没有空格的字符串产生任何负面影响。此外,如果字符串的开头有空格,则运行的操作数是所需操作数的两倍 在上述情况下是否需要使用if语句?如果不需要使用if语句,但应将修剪后的值保存在某个位置,如 str = str.trimStart(); --编辑-- “是否需要“如果…” 您在原始文档中所做的测试是多余的
if
语句是否冗余
if (str[0] === ' ') {
str = str.trimStart()
}
这对我来说似乎没有必要,因为trimStart()
似乎不会对开头没有空格的字符串产生任何负面影响。此外,如果字符串的开头有空格,则运行的操作数是所需操作数的两倍
在上述情况下是否需要使用
if
语句?如果不需要使用if
语句,但应将修剪后的值保存在某个位置,如
str = str.trimStart();
--编辑--
“是否需要“如果…”
您在原始文档中所做的测试是多余的。但在调用trimStart()之前,您可能需要检查str是否有值和/或检查该值是否为字符串,如
给定已编辑的代码,有一种情况下,
if
语句可能很有用—如果字符串以换行符(计为空白,将被修剪)而不是纯空格开头。例如:
constparsestr=(str)=>{
如果(str[0]==''){
str=str.trimStart()
}
console.log(str.length);
};
parseStr('\nfoo');
parseStr('foo');
parseStr('foo')代码>不需要if块,因为如果字符串开头没有空格,trimStart
函数将不起任何作用。使用if语句不会对其产生任何影响,也不会真正对性能产生任何好处。对不起,是的,另一位回答的人也指出了这一点。我编辑了QIt,如果字符串以换行符开头,它可能会有所不同。有点奇怪,但不是不可能。非常感谢您的输入(没有双关语的lol)。我选择其他人是因为他比你差一点点,虽然你的答案同样有用,但我知道性能提升可以忽略不计,但你仍在运行两倍于所需的操作如果字符串开头有空格,你只会运行两倍于所需的操作,如果没有,则不会调用trimStart
函数。与if语句相比,调用函数确实有一些开销,但它们并没有产生任何有意义的区别。这是真的。但是解析if
语句本身基本上是一个操作。不管怎样,现在我得到了答案。t它派生自输入
元素,因此它总是有一个值。不过这是个好建议
if (str && typeof str === 'string') ...