이 스크립트는 스크립트 상단에서 상당히 많이 볼 수 있습니다. 그러나 그것이 무엇을 의미하는지 완전히 알 수는 없습니다.이 글로벌 네임 스페이스 선언을 설명합니다
var whatevername = whatevername || {};
이 스크립트는 스크립트 상단에서 상당히 많이 볼 수 있습니다. 그러나 그것이 무엇을 의미하는지 완전히 알 수는 없습니다.이 글로벌 네임 스페이스 선언을 설명합니다
var whatevername = whatevername || {};
기본값은 OR 연산자를 사용합니다. whatevername
이 설정되면 사용되며, 그렇지 않으면 새로운 빈 개체가 사용됩니다.
function sayHi(options){
options = options || {};
if (options.useAlert){
alert("hi");
} else {
console.log("hi");
}
}
: 첫 번째 경우
sayHi();
sayHi({"useAlert": true});
{}
될 것입니다 used 및 options.useAlert는 정의되지 않습니다. if 문에서 false로 설정되어있는 것과 동일하며 console.log
이 인쇄에 사용됩니다.
OR 연산자는 일반적으로 다음과 같이 사용됩니다
경우 (hasAnEmailAddress || hasAPhoneNumber) {contactPerson()} 운영자가
hasAnEmailAddress
의 값을 대신 반환됩니다
hasAnEmailAddress
가 true 인 경우 hasAPhoneNumber
참이 아니면 두 번째 인수 값인 hasAPhoneNumber
이 반환됩니다. - 그것은 부울 값이 아닌 경우에도 첫 번째 인수가 두 번째 인수를 반환 falsy 경우 : 기본값을 설정할 때 로직이 사용되는
.
이것은 기본값 문입니다. ||
은 OR의 상징입니다.
성명은 "whatevername을 whatevername으로 설정하거나 빈 개체로 설정"합니다. OR은 truey 값 (false가 아니라 공백이 아님)으로 읽는 두 객체 중 첫 번째 객체를 선택합니다. whatevername이 설정되면 whatevername이 생깁니다. 그렇지 않은 경우 (또는 null로 설정된 경우) 비어있는 객체가 표시됩니다.
whatevername
가 이미 초기화되어 있지 않은 경우는 빈 객체 whatevername
를 초기화합니다.
많은 언어에 상응하는 코드
if(!whatevername) whatevername = {}
,이 내가하게 생각 삼항 연산자, 함께 할 볼 수 있습니다 그것은 무슨 일이 일어나고 있는지 명확. 예 :
var whatevername = (whatevername != NULL) ? whatevername : {};
자바 스크립트에서 || 연산자가 진리로 평가되면, 기대 한 바와 같이 부울 값을 반환하지 않고 마지막으로 평가 한 피연산자의 값을 반환합니다. 따라서 whatevername이 null이면 새 객체를 반환하고 그렇지 않으면 whatevername을 반환합니다. 루비도이 작업을 수행합니다.이 동작의 또 다른 예를 들자면 다음과 같습니다.
예를 들어 모듈 패턴에 사용할 수 있습니다. http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html – Matthias