如何在此代码中正确添加括号

时间:2010-06-06 16:55:53

标签: javascript readability semantics

这段代码修剪了空白,(fyi:它被认为非常快)

function wSpaceTrim(s){
    var start = -1,
    end = s.length;
    while (s.charCodeAt(--end) < 33 );  //here
    while (s.charCodeAt(++start) < 33 );  //here also 
    return s.slice( start, end + 1 );
}

while循环没有括号,我如何正确地为此代码添加括号?

while(iMean){
  // like this;
}

非常感谢你!

2 个答案:

答案 0 :(得分:7)

循环体是空的(实际发生的事情是循环条件中的递增/递减操作),所以只需添加{}

while (s.charCodeAt(--end) < 33 ){}
while (s.charCodeAt(++start) < 33 ){}

相同的while循环的更长,可能更容易阅读的版本将是:

end = end - 1;
while (s.charCodeAt(end) < 33 )
{
    end = end - 1;
}
start = start + 1;
while (s.charCodeAt(start) < 33 )
{
    start = start + 1;
}

答案 1 :(得分:2)

代码不需要括号,但它确实需要一个选项来使用原生修剪方法。

Opera,Firefox和Chrome都有原生字符串原型修剪功能 - 其他浏览器也可以添加它。 对于这个特殊的方法,我想我会用String.prototype做一点, 以便在可能的情况下使用内置方法。

if(!String.prototype.trim){
    String.prototype.trim= function(){
        var start= -1,
        end= this.length;
        while(this.charCodeAt(--end)< 33);
        while(this.charCodeAt(++start)< 33);
        return this.slice(start, end + 1);
    }
}

这可能确实很快,但我更喜欢简单 -

if(!(''.trim)){
    String.prototype.trim= function(){
        return this.replace(/^\s+|\s+$/g,'');
    }
}