>웹 프론트엔드 >JS 튜토리얼 >더 나은 JavaScript 작성 - 정의되지 않음(1부)_javascript 기술

더 나은 JavaScript 작성 - 정의되지 않음(1부)_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:41:331077검색

"전역 변수"와 "전역 개체의 속성"은 동일한 것을 지칭하지만, 문맥에 맞게 다른 용어를 사용합니다. 본문에서는 설명하지 않겠습니다. "선언"은 "var" 문을 통해 변수를 선언하는 것을 의미합니다. 및/또는 함수 정의 및 해당 시그니처; "변수"는 "var" 문을 통해 선언되거나 함수 본문에서 액세스하려고 시도된 명명된 매개변수를 나타냅니다. "정의되지 않음"은 값(전역 또는 지역 변수)을 나타냅니다. "undefine"이라고 명명된 "Undefine"은 type(...) == "undefine"; "output"이 들어오는 매개변수를 표시하는 함수이며 "alert"와 같은 종류로 간주될 수 있는 상황을 나타냅니다.

JavaScript 프로그램을 작성할 때 항상 "정의되지 않음"을 사용해야 합니다. 예를 들어 특정 값이 할당되었는지, 아니면 할당된 특정 값을 제거하고 싶은지 알아야 합니다. 다음을 수행할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

출력 (myVar === undefine );
myVar = undefine;

그러나 이는 존재하지 않는 변수를 "읽거나" 비교하려고 하면 좋지 않습니다. 예외가 발생합니다.
예를 들어, 위 코드를 실행할 때 디자인이 부족하여 myVar 변수가 정의되지 않은 경우 위 코드가 잘못됩니다.
또한 이전 브라우저 버전에서는 이 미리 정의된 값이 정의되어 있지 않습니다. 호환성과 내결함성을 향상시키기 위해 다음과 같이 할 수 있습니다.
코드 복사 코드는 다음과 같습니다.

output(typeof(myVar) == "undefine");
myVar = void(0);

typeof 연산자는 JavaScript의 언어 기능입니다. 코드는 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.

출력( oneFunction(myVar) == "undefine");
myVar = void(0);

그러나 둘 사이에는 중요한 차이점이 있습니다. myVar가 존재하지 않는 경우 전자는 올바르게 실행되고 "정의되지 않음" 문자열을 반환하면 후자는 내부 구조에 관계없이 예외가 발생합니다.
void는 또 다른 언어 기능입니다. 이 연산자의 의미는 스크립트의 다른 부분에서 들어오는 매개 변수를 숨기는 것이며 void "연산"의 결과를 얻으려는 명령문이 있는 경우 "알 수 없음"만 얻을 수 있습니다. " 정의".
이러한 void의 특성 때문에 void의 가장 일반적인 두 가지 기능이 있습니다. 하나는 위 코드와 같이 "정의되지 않은" 값을 다른 변수/속성에 할당하는 것입니다.
즐겨찾기 목록에 추가
여기서 favList는 JavaScript 배열이고 curItem은 이미 정의된 객체입니다. — —푸시 배열의 메서드는 푸시 작업 후 배열의 길이를 반환합니다. 이 예에서 이 길이는 우리에게 쓸모가 없지만 그대로 두면 브라우저가 거의 공백으로 이동할 수 있습니다. 스크립트 결과 페이지만 표시됩니다. "3"과 같은 푸시의 반환 값입니다.
따라서 브라우저를 "속이기" 위해서는 void 연산자를 사용해야 합니다. 여기에는 아무것도 없습니다.
이제 "정의되지 않음"의 사용으로 돌아가면 "정의되지 않음"과 비교하기 위해 사용한 "높은 내결함성" typeof 연산자가 사용하기 약간 까다롭다는 것을 알게 될 것입니다. 전체 "typeof()에 더 많은 쓰기가 필요합니다. """는 10자입니다.
저희는 하루종일 고민하는 프로그래머이지만, 그렇다고 해서 고민을 줄이는 방법을 찾지 말아야 하는 것은 아닙니다~ 실제로는 프로그래밍 작업을 더 쉽게 하기 위해 다양한 개발 도구가 만들어지는 것 아닌가요?
따라서 변수가 선언되었음이 분명하다면 변수를 알려진 "정의되지 않음"과 직접 비교할 수 있습니다. 예:
코드 복사 코드는 다음과 같습니다.

output(myVar === void(0))

비교 typeof를 사용한 것과 비교 연산자를 사용하는 경우 이 후자의 방법은 몇 글자를 입력하는 시간을 절약할 뿐만 아니라 몇 가지 장점도 있습니다. 즉, 감지하기 어려운 철자 오류(예: "정의되지 않음" 대신 "정의되지 않음"으로 쓰는 등)를 방지할 수 있습니다.

이 시점에서 "정의되지 않음"/"정의되지 않음"에 관한 가장 일반적인 기술이 도입되었습니다.
다음 글에서는 덜 일반적인 기술을 소개하겠습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.