이상한 자바스크립트
2315 단어 webdevjavascriptnode
이 포스트에서 우리는 자바스크립트의 몇 가지 이상한 개념에 대해 논의할 것입니다.
게양
C, C++ 또는 Java와 같은 언어에 익숙하다면 초기화하지 않으면 변수를 사용할 수 없다는 것을 알아야 합니다. 변수가 선언되기 전에도 사용할 수 있다고 말하면 어떻게 될까요? 이상하지?
자바스크립트에서 소스 코드의 맨 아래에 변수를 선언해도 선언/초기화 전에 변수를 사용할 수 있습니다. 이상하게 들리지만 간단한 개념입니다. 자바스크립트 코드를 실행하는 동안 컴파일러는 선언된 모든 변수를 소스 코드 위로 이동합니다. 자바스크립트로 호이스팅(hoisting)이라고 정의한다.
예시:
getLog() => console.log('Logging...');
getLog();
위의 예에서는 콘솔에 문자열을 출력하는 getLog라는 함수를 정의했습니다. 이 함수를 호출하면 콘솔에 원하는 결과가 출력됩니다.
이제 호이스팅이 어떻게 작동하는지 봅시다.
getLog();
getLog() => console.log('Logging...');
위의 예에서는 실제로 선언하기 전에 function을 호출했습니다. 함수가 선언 전에 호출되더라도 오류를 제공하는 대신 콘솔에 유사한 결과를 출력합니다. 호이스팅 때문에 가능합니다.
이 코드를 실행하는 동안 실제 함수 호출 전에 함수 본문/정의가 맨 위로 이동합니다. 따라서 함수 호출은 정확한 결과를 콘솔에 출력합니다.
호이스팅은 선언에서만 작동합니다. 변수를 선언하고 나중에 초기화하면 결과가 정의되지 않습니다.
혼동을 피하기 위해 항상 변수를 사용하기 전에 선언하고 초기화하십시오.
== 대 ===
1 == 1 is True
1234 == '1234' is also True
하지만 의미가 없습니다. 정수와 문자열을 비교하고 있습니다.
자바 스크립트에는 두 가지 동등 비교 연산자가 있습니다.
== 엄격한 비교를 구현하지 않습니다. 데이터 유형이 아닌 값만 비교합니다. 문자열을 숫자와 비교할 때 자바스크립트는 문자열을 숫자로 변환합니다. 따라서
1 == '1'
는 항상 true를 반환합니다.이를 피하기 위해 ===(Strict Equality Comparison Operator)를 사용할 수 있습니다. ===는 데이터 값을 해당 유형과 비교하므로 문자열을 정수와 비교하면 false를 반환합니다.
1 === '1'
는 false를 반환하고 1 === 1
는 true를 반환합니다.논리적 비교
자바스크립트에서는 논리 연산자를 사용하여 참/거짓 값을 다른 유형과 비교할 수 있습니다. 이것을 간단한 용어로 설명하겠습니다.
0 === 0 && 'Hello'
위 식의 출력을 추측할 수 있습니까?
오류가 나겠죠? 음 ... 아니.
위 식에서,
0 === 0
true를 반환하므로 표현식은 다음과 같이 됩니다.
true && 'Hello'
.이 표현식을 평가한 후 Hello가 콘솔에 인쇄됩니다.
자바 스크립트에서 진실 값을 문자열 또는 정수와 비교하는 경우. 항상 해당 문자열 또는 정수를 반환합니다.
false && 'Hello'
이 표현식은 false로 평가됩니다. 거짓 값과 비교하면 항상 거짓을 반환합니다.자바스크립트에는 배우는 것을 즐겁게 만드는 수많은 까다로운 개념이 있습니다.
Reference
이 문제에 관하여(이상한 자바스크립트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vivekalhat/weird-javascript-hlp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)