function format(format) {
function format(format) { FB.String.format._formatRE = /({[^}^{] })/g;
}
var values = arguments;
return format.replace(
FB.String.format._formatRE,
function(str, m) { value = values[index 1];
if (value === null || value === undefined) { return value.toString() ;
}
);
}
使用:
/{(d )}/g,
function (full, idx) {
return args[idx];
} )
}
'Hello {0}, How{1}'.format( 'Bob', ' you doin');
// => Hello Bob, How you doinhttp://mazesoul.github.com/Readability_idioms_and_compression_tolerance /#31.0
定義即運行函數
( function() {
( function() {
//do something>thing } )();
這確實是最簡單的技巧,但也是最實用的技巧。 奠定了JavaScript封裝的基礎。
代碼如下:
var some = con1 ? val1 : con3 ? val3 :
排除>一種函數註冊-呼叫機制
來自CKEditor,我做了提取。
( function() {
// 將可用下標存取屬性的物件轉換成陣列
// 注意,IE下DOMNodeList會失敗
function toArray( arrayLike, index ) {
return Array.prototype.slice .call( arrayLike, index || 0 );
}
window.Util = {
'addFunction' : function( fn, scope ) {
return fns.push( ftion(ns.push
return fn.apply( scope || window, arguments );
} ) - 1;
},
'removeFunction' : function( index ) {
fns[ index ] = null;
},
'callFunction' : function( index ) {
var fn = fns[ index ];
return fn && fn.apply( window, toArray( arguments, 1 );
};
} )();
// 應用場景
var fnId;
// 在閉包中,新增一個可供全域呼叫的函數
( function( ) {
fnId = Util.addFunction( function( msg ) {
alert( msg );
} );
} )();
// 呼叫
Util.callFunction( fnId, 'Hello, World' ); //-> 'Hello,World';
短路運算
var something = 'xxxx';
var something = 'xxxx'; 'xxx';
console.log( false && something ); //-> false
console.log( true || something ); // -> true
console.log( false || something ); //-> something