sizzle에서 정규식을 동적으로 작성할 때 문자를 피합니다. 탈출.
함수 형식(format) {
if (!FB.String.format._formatRE) {
FB.String.format._formatRE = /({[^}^{] })/g;
}
var 값 = 인수;
return format.replace(
FB.String.format._formatRE,
function(str, m) {
var
index =parseInt(m.substr(1), 10),
값 = 값[색인 1] ;
}
);
}
용도:
function (full, idx) {
return args[ idx];
} )
}
'안녕하세요 {0}, How{1}'.format( 'Bob', 'you doin');
// => 안녕하세요 Bob, 잘 지내세요http://mazesoul.github.com/ 가독성_idioms_and_compression_tolerance/#31.0
기능 정의 및 실행
( function() {
/ / 뭔가를 하세요
} )()
이것은 실제로 가장 간단한 기술이지만 가장 실용적이기도 합니다. JavaScript 캡슐화의 기반을 마련합니다.
3차 연산
var some = con1 ? > con2 ? val2 :
con3 ? val3 :
defaultVal;
함수 등록 호출 메커니즘
CKEditor에서 추출을 했습니다.
( function() {
var fns = [ ];
// 첨자로 속성에 액세스할 수 있는 객체를 배열로 변환
// IE
function toArray( arrayLike, index ) {
return Array에서는 DOMNodeList가 실패합니다. 프로토타입.slice .call( arrayLike, index || 0 );
}
window.Util = {
'addFunction' : function( fn,scope ) {
return fns.push( function( ){
return fn.apply( 범위 || 창, 인수 );
} ) - 1;
},
'removeFunction' : 함수( index ) {
fns[ index ] = null;
},
'callFunction' : function( index ) {
var fn = fns[ index ];
return fn && fn.apply( window, toArray( 인수, 1 ) );
}
};
} )();
// 애플리케이션 시나리오
var fnId;
// 클로저에 전역적으로 호출할 수 있는 함수를 추가합니다
( function( ) {
fnId = Util.addFunction( function( msg ) {
Alert( msg );
} );
} )();
//
Util.callFunction( fnId, 'Hello, World' ) //-> 'Hello,World';
단락운전
var Something = 'xxxx';
console.log( true && Something ); //-> 'xxx';
console.log( false && Something ); //-> false
console.log( true || Something ); // - > true
console.log( false || Something ) //->