whatisnew
2015-04-16 09:51:30 +08:00
1. 缩进空格问题,像 tbs 这种流行框架什么的推荐是 2 格,但是看到多数人用 4 格。
那么现在问题来了,到底是空2格还是4格。。。
2. 括号和花括号
```javascript
// 没空格
if(){
// 遇到花括号空1格
if() {
// if 直接空1格
if (){
// 都空1格
if () {
// 条件空1格,花括号换行
if ()
{
// 以上同样的问题也空在于 function 和 obj 上面
// 方法
function(){
function (){
function() {
function()
{
// 对象
var obj{
var obj {
var obj
{
```
换行问题有大神说过Javascript会自动添加句末的分号,导致一些难以察觉的错误,
但是我觉得就算花括号不换行,但是在实际在文件中换行的地方多了去了,所以这个自动添加句末的分号的问题不应该成为一个编程风格的理由。
按常见风格
```javascript
define(["../jquery",], function( jQuery ) {
var rclass = /[\t\r\n\f]/g;
jQuery.fn.extend({
addSomeClass: function( value ) {
if ( proceed ) {
classes = ( value || "" ).match( rnotwhite ) || [];
for ( ; i < len; i++ ) {
elem = this[ i ];
cur = elem.nodeType === 1 && ( elem.className ?
( " " + elem.className + " " ).replace( rclass, " " ) :
" "
);
if ( cur ) {
j = 0;
while ( (clazz = classes[j++]) ) {
if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
cur += clazz + " ";
}
}
finalValue = jQuery.trim( cur );
if ( elem.className !== finalValue ) {
elem.className = finalValue;
}
}
}
}
return this;
}
});
});
```
上面这种风格,难道没有人觉得代码块block很难理解吗?
那么这样呢:
```javascript
define(["../jquery",], function( jQuery )
{
var rclass = /[\t\r\n\f]/g;
jQuery.fn.extend(
{
addSomeClass: function( value )
{
if ( proceed )
{
classes = ( value || "" ).match( rnotwhite ) || [];
for ( ; i < len; i++ )
{
elem = this[ i ];
cur = elem.nodeType === 1 && ( elem.className ?
( " " + elem.className + " " ).replace( rclass, " " ) :
" "
);
if ( cur )
{
j = 0;
while ( (clazz = classes[j++]) )
{
// 当条件只有一行的时候省略 {} 花括号
if ( cur.indexOf( " " + clazz + " " ) < 0 ) cur += clazz + " ";
}
finalValue = jQuery.trim( cur );
if ( elem.className !== finalValue )
{
elem.className = finalValue;
}
}
}
}
return this;
}
});
});
```
花括号换行之后,是不是直观了很多呢?更容易看清楚了呢?
如果换成2个空格,那个花括号换行在js里就更好看了:
```javascript
define(["../jquery",], function( jQuery )
{
var rclass = /[\t\r\n\f]/g;
jQuery.fn.extend(
{
addSomeClass: function( value )
{
if ( proceed )
{
classes = ( value || "" ).match( rnotwhite ) || [];
for ( ; i < len; i++ )
{
if ( cur )
{
j = 0;
while ( (clazz = classes[j++]) )
{
// 当条件只有一行的时候省略 {} 花括号
if ( cur.indexOf( " " + clazz + " " ) < 0 ) cur += clazz + " ";
}
finalValue = jQuery.trim( cur );
if ( elem.className !== finalValue )
{
elem.className = finalValue;
}
}
}
}
return this;
}
});
});
```
是不是更加直观,容易看清楚了呢?
所以,我不理解了,为什么大家常见都说2个空格,又写成4个空格,不换行,特别是2个空格的花括号不换行,难道看着成篇成篇的代码不难受吗?
此文仅用于个人偏好讨论用。没有任何别的什么意思。