Javascript에는 괄호의 다섯 가지 의미가 있습니다.
의미 1, 함수 선언 시 매개변수 목록
다음과 같이 코드 코드를 복사합니다.
함수 func(arg1,arg2){
// ...
}
특정 제한 효과를 달성하기 위해 일부 명령문과 함께 사용되는 의미 체계 2
다음과 같이 코드 코드를 복사합니다.
// for in과 함께 사용됨
for(obj의 var a){
// ...
}
// if와 함께 사용
만약(부){
//...
}
// while과 함께 사용
동안(부){
// ...
}
// do while과 함께 사용
하다{
// ...
}그동안(부)
참고: if, while 및 do while과 함께 사용하면 괄호는 암시적으로 표현식 결과를 부울 값으로 변환합니다. JavaScript의 암시적 유형 변환을 참조하세요.
값(실제 매개변수)을 전달하기 위해 new와 함께 사용되는 의미 체계 3
다음과 같이 코드 코드를 복사합니다.
// name(name)과 age(age)라는 두 개의 필드가 있는 Person 클래스가 정의되었다고 가정합니다.
var p1 = new Person('Jack',26);
Semantic 4, 함수 또는 객체 메소드에 대한 호출 연산자(매개변수가 정의된 경우 실제 매개변수도 Semantic 3과 동일한 방식으로 전달될 수 있음)
다음과 같이 코드 코드를 복사합니다.
// func 함수가 정의되었다고 가정합니다.
기능();
// 객체 obj가 정의되었고 func 메소드가 있다고 가정합니다.
obj.func();
다음은 typeof 연산자입니다. 일부 사람들은 이 방식을 사용하기를 좋아합니다.
유형(xxx);
typeof 뒤의 괄호는 의미 4(즉, 함수 호출이 아님)가 아니라 나중에 언급하는 의미 5임을 참고하세요. 나는 보통 다음 괄호 없이 typeof를 사용합니다.
의미론 5, 강제 표현 평가
Semantic 5와 관련하여 모든 사람은 eval을 사용하여 JSON을 구문 분석하는 데 가장 익숙합니다.
다음과 같이 코드 코드를 복사합니다.
함수 strToJson(str){
// eval의 문자열 양쪽에 강제 연산자()가 추가됩니다.
var json = eval('(' + str + ')');
JSON을 반환합니다.
}
또 다른 예는 익명 함수가 자체 실행에 자주 사용된다는 것입니다.
다음과 같이 코드 코드를 복사합니다.
(기능(){
// ...
})();