Programming Languages/Javascript
[Javascript] Lexical Scope (렉시컬 스코프) 란?
[Javascript] Lexical Scope (렉시컬 스코프) 란?
2023.09.11✅ Lexcial Scope(= Static Scope) 란? 렉시컬 스코프, 또는 정적(static) 스코프는 프로그래밍 언어에서 변수의 유효 범위(scope)를 결정하는 규칙 중 하나이다. 함수 호출 시점과는 무관하게 변수 선언 위치에 따라 스코프가 결정되는 것을 말한다. 함수를 실행해 보지 않아도, 코드만 보고도 알 수 있는 것이 바로 렉시컬 스코프이다. ✅ Lexical Scope의 예시 function outerFunction() { const outerVar = "I am from outerFunction"; function innerFunction() { console.log(outerVar); } return innerFunction; } const myClosure = outerFunct..
[Javascript] ('b'+'a'+ +'a'+'a').toLowerCase() 의 결과는 banana ???
[Javascript] ('b'+'a'+ +'a'+'a').toLowerCase() 의 결과는 banana ???
2023.07.09자바스크립트에서 ('b'+'a'+ +'a'+'a').toLowerCase() 의 결과는 banana 이다. 이유는 이렇다. 'b' + 'a'를 연결하면 'ba'가 된다. +'a'에서 +를 단항연산자로 인식해 자바스크립트 엔진은 'a'을 숫자로 형변환을 시도한다. 하지만 'a'는 숫자로 해석할 수 없는 값이라 NaN (Not a Number)을 반환한다. NaN + 'a' 를 시도하면 NaN은 문자열 "NaN"이 된다. 따라서 NaN + 'a' 는 "NaNa"가 된다. 결과적으로 ('b'+'a'+ +'a'+'a') 는 'baNaNa'가 되고 이를 소문자로 변환하면 banana가 된다. 이상한 자바스크립트~..