>웹 프론트엔드 >JS 튜토리얼 >javascript_javascript 기술에서 쉽게 혼동되는 몇 가지 개념 요약

javascript_javascript 기술에서 쉽게 혼동되는 몇 가지 개념 요약

WBOY
WBOY원래의
2016-05-16 16:04:181272검색

1.

var name = "The Window";
var object = {
name : "My Object",
getName: function(){
return this.name;
}
};

여기서 getName() 메소드는 단순히 this.name의 값을 반환합니다. 다음은 object.getName()
을 호출하는 여러 가지 방법입니다. 방법과 각각의 결과.
object.getName(); //"내 개체"
(object.getName)(); //"내 개체"
(object.getName = object.getName)(); //비엄격 모드의 "창"

세 번째 경우(object.getName=object.getName); var fn=(object.getName=object.getName);fn();

과 같습니다.

2.

function outputNumbers(count){
for (var i=0; i < count; i++){
//alert(i);
}
var i; //重新声明变量
alert(i); //计数
}

outputNumbers(5); 

JavaScript는 동일한 변수를 여러 번 선언하는 경우 이를 알려주지 않으며 후속 선언을 무시합니다.
참고하세요(그러나 후속 선언에서는 변수 초기화를 수행합니다). 익명 함수를 사용하면 블록 수준 범위 지정을 모방하고 이 문제를 피할 수 있습니다.

3.

function(){
//这里是块级作用域
}(); //出错!

이 코드는 JavaScript가 function 키워드를 함수 선언의 시작 부분으로 처리하고 function
숫자 선언 뒤에는 괄호가 올 수 없습니다. 그러나 함수 표현식 뒤에는 괄호가 올 수 있습니다. 함수 선언을 함수 표현식으로 변환하려면
아래와 같이 괄호 한 쌍을 추가하면 됩니다.

(function(){
//这里是块级作用域
})();

4.

function outputNumbers(count){
(function () {
for (var i=0; i < count; i++){
alert(i);
}
})();
alert(i); //导致一个错误!
}

다시 작성된 이 outputNumbers() 함수에서는 for 루프 외부에 개인 범위를 삽입합니다. 익명
함수에 정의된 모든 변수는 실행이 끝나면 삭제됩니다. 따라서 변수 i는 루프 내에서만 사용할 수 있으며 사용 후에는 삭제됩니다.
이 익명 함수는 클로저이고 포함 범위의
에 액세스할 수 있으므로 변수 count는 개인 범위에서 액세스할 수 있습니다. 모든 변수.

이 기술은 전역 범위에 너무 많은 변수와 함수를 추가하는 것을 제한하기 위해 전역 범위의 함수 외부에서 자주 사용됩니다.
일반적으로 말하면, 전역 범위에 가능한 한 적은 수의 변수와 함수를 추가하려고 노력해야 합니다. 많은 개발자가 참여하는 대규모
프로젝트에서 애플리케이션에 전역 변수와 함수가 너무 많으면 이름 충돌이 쉽게 발생할 수 있습니다. 개인 범위를 생성함으로써 각 개발자는
전역 범위를 망칠 염려 없이 자신만의 변수를 사용할 수 있습니다. 예:

(function(){
var now = new Date();
if (now.getMonth() == 0 && now.getDate() == 1){
alert("Happy new year!");
}
})();

위의 코드를 전역 범위에 넣어서 1월 1일이 언제인지 판단하는 데 사용할 수 있습니다.
사용자가 새해 인사 메시지를 표시합니다. 이제 변수는 익명 함수의 지역 변수이므로 전역 범위에 있을 필요가 없습니다.
에서 생성하세요.

위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.