Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 冗余if语句?_Javascript_String_Performance_Trim - Fatal编程技术网

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') ...