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