이상한 자바스크립트

2315 단어 webdevjavascriptnode
Javascript는 세계에서 가장 인기 있는 웹 프로그래밍 언어 중 하나입니다. 배우기는 쉽지만 여전히 초보자를 혼동시킬 수 있는 까다로운 개념이 있습니다.

이 포스트에서 우리는 자바스크립트의 몇 가지 이상한 개념에 대해 논의할 것입니다.

게양



C, C++ 또는 Java와 같은 언어에 익숙하다면 초기화하지 않으면 변수를 사용할 수 없다는 것을 알아야 합니다. 변수가 선언되기 전에도 사용할 수 있다고 말하면 어떻게 될까요? 이상하지?

자바스크립트에서 소스 코드의 맨 아래에 변수를 선언해도 선언/초기화 전에 변수를 사용할 수 있습니다. 이상하게 들리지만 간단한 개념입니다. 자바스크립트 코드를 실행하는 동안 컴파일러는 선언된 모든 변수를 소스 코드 위로 이동합니다. 자바스크립트로 호이스팅(hoisting)이라고 정의한다.

예시:

getLog() => console.log('Logging...');

getLog();


위의 예에서는 콘솔에 문자열을 출력하는 getLog라는 함수를 정의했습니다. 이 함수를 호출하면 콘솔에 원하는 결과가 출력됩니다.

이제 호이스팅이 어떻게 작동하는지 봅시다.

getLog();

getLog() => console.log('Logging...');


위의 예에서는 실제로 선언하기 전에 function을 호출했습니다. 함수가 선언 전에 호출되더라도 오류를 제공하는 대신 콘솔에 유사한 결과를 출력합니다. 호이스팅 때문에 가능합니다.

이 코드를 실행하는 동안 실제 함수 호출 전에 함수 본문/정의가 맨 위로 이동합니다. 따라서 함수 호출은 정확한 결과를 콘솔에 출력합니다.

호이스팅은 선언에서만 작동합니다. 변수를 선언하고 나중에 초기화하면 결과가 정의되지 않습니다.

혼동을 피하기 위해 항상 변수를 사용하기 전에 선언하고 초기화하십시오.

== 대 ===


1 == 1 is True1234 == '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로 평가됩니다. 거짓 값과 비교하면 항상 거짓을 반환합니다.

    자바스크립트에는 배우는 것을 즐겁게 만드는 수많은 까다로운 개념이 있습니다.

    좋은 웹페이지 즐겨찾기