728x90 반응형 JavaScript18 JavaScript #6 호이스팅(Hoisting) 호이스팅변수나 함수 선언들이 포함된 범위 상단으로 끌어올려지는 동작을 말한다.이는 코드의 실제 실행 순서와는 다르게 해석되어 변수와 함수의 선언만 끌어올려지고 초기화는 끌어올려지지 않는다는 점에서 의미를 가진다. 변수 호이스팅변수의 선언은 호이스팅 되지만, 변수 초기화는 호이스팅 되지 않는다. 이는 변수 선언이 코드의 최상단으로 이동된 것처럼 동작하지만 초기화는 원래 위치에 남아 있음을 의미한다. 실제 코드console.log(a); // undefinedvar a = 10;console.log(a); // 10 자바스크립트 엔진에 의해 해석된 코드var a;console.log(a); // undefineda = 10;console.log(a); // 10 a 변수의 선언만 끌어올려지고 초기화는 원래 .. 2024. 7. 21. JavaScript #5 유효 범위, 스코프(Scope) 스코프는 변수나 함수가 유효한 범위를 정의한다.함수 스코프함수 내부에서 선언된 변수의 유효 범위를 의미한다. var 키워드로 선언된 변수는 함수 스코프를 가진다는 의미는 변수가 함수 내 어디서든 접근 가능하지만 함수 외부에서 접근할 수 없음을 의미한다. function Func() { var funcScopeVar = "I am inside a function"; console.log(funcScopeVar); // "I am inside a function"}Func();// console.log(funcScopeVar); // ReferenceError: functionScopedVariable is not defined Func 함수 내에서 선언된 var 변수 funcScopeVar는 함수 내부.. 2024. 7. 21. JavaScript #4 변수 변수자바스크립트에서 변수를 선언할 때 사용하는 키워드에는 var, let, const가 있다.각 키워드는 변수의 스코프와 재할당 가능성, 호이스팅 방식에서 차이가 있다. var함수 스코프var로 선언된 변수는 함수 스코프를 가지며 함수 내에서 선언된 변수는 함수 전체에서 접근할 수 있다. 호이스팅var로 선언된 변수는 호이스팅 되며 선언이 코드의 최상단으로 끌어올려지고 초기화는 선언한 위치에서 이루어진다. 변수 재선언 가능같은 스코프 내에서 여러 번 선언할 수 있다. 이때 이전 값은 덮어씌워지게 된다. 전역 객체에 속성으로 추가전역 스코프에서 선언된 var변수는 전역 객체의 속성이 된다. (global 또는 window) console.log(x); // undefined (호이스팅)var x = 5;c.. 2024. 7. 21. JavaScript #3 연산자 연산자 기호는 공통적으로 사용되는 사칙연산을 적용하고 있다.그 밖에 추가로 사용되는 연산자 중 차이점을 정리한다. 비교 연산자동등 연산자와 일치 연산자true == 1;// true , 두 피연산자를 비교하기 전에 true를 1로 변환true === 1;// false , 두 피연산자의 타입부터 비교된다. 비슷해 보이는 두 연산자의 동일한 값 비교에서 명확한 차이가 난다. '==' 동등 연산자비교하는 두 값의 타입이 다르면 비교하기 전에 타입을 동일하게 변환 후 비교를 한다.console.log(5 == '5'); // true, 숫자 5와 문자열 '5'가 타입 강제 변환 후 비교console.log(null == undefined); // true, 둘 다 비어있는 값을 나타냄console... 2024. 7. 21. JavaScript #2 표현식 표현식은 코드에서 값으로 평가될 수 있는 코드의 조각이라고 말할 수 있다.표현식의 결과는 값이 될 수 있으며, 이를 통해 값을 할당하거나 다른 표현식의 일부로 사용할 수 있다. 표현식을 파악하면 자바스크립트의 문법이 어떤 코드의 조각들로 작성되어서 변수의 값이 할당되고 조건문 및 반복문 등이 구성되고 함수의 인수로 전달되는지 알 수 있다. 표현식 종류리터럴 표현식고정된 값을 나타낸다.가장 간단한 형태로 다른 표현식을 포함하지 않는 독립적인 표현식이다.1; // 숫자 리터럴"hello" // 문자열 리터럴true; //boolean 리터럴[1,2,3]; // 배열 리터럴{key:"value"}; // 객체 리터럴 식별자 표현식변수나 상수의 이름을 나타낸다.let x = 10;x; // 식별자 표현식 값 :.. 2024. 7. 21. JavaScript #1 개요 JavaScript자바스크립트는 현재까지도 웹 개발에서는 빼놓을 수 없는 필수적인 기술이다. 더 나아가 이제는 웹뿐만 아니라 서버 개발에서도 사용할 정도로 높은 유연성과 확장성을 가진 언어로 평가된다. 탄생1995년, 웹은 주로 정적인 페이지로 구성되어 있었고 이러한 페이지는 사용자가 상호작용할 수 있는 기능이 매우 제한적이었으며 또한 모든 상호작용은 서버와의 통신을 통해 이루어졌기 때문에 느리고 비효율적인 방식이었다. 당시 웹 브라우저 시장을 주도했던 미국의 소프트웨어 회사인 넷스케이프(Netscape Communications Corporation)는 이러한 문제점을 해결하고 사용자와 웹 페이지의 상호작용을 개선하기 위해서 클라이언트 측에서 실행될 수 있는 스크립팅 언어가 필요하다고 판단하였다. 넷.. 2024. 7. 21. 이전 1 2 3 다음 728x90 반응형