본문 바로가기

부트캠프교육중/JavaScript63

[JS] 호이스팅(hoisting) console.log(useName); var userName = 'Max'; 이런 코드가 있다고 가정하자. 이렇게 var를 사용해서 할경우 => 페이지를 새로고침하면 오류가 발생하지 않고 undefined가 출력될것이다. let이나 const로 사용해서 할 경우 => Uncaught ReferenceError: Cannot access 'userName'before initialization 이라고 오류가 발생할것이다. 위 같은 차이가 발생한 이유는 호이스팅(hoisting)이라는 기능때문이다. - 자바스크립트 엔진과 브라우저에서 스크립트를 로드할때 전체 스크립트를 확인해서 함수를 찾은 뒤, 자동으로 로드하고 등록해서 실제 사용하는 코드 아래에 함수를 작성하도록 하는 것이다. - 이변수의 선언을 파일의.. 2023. 11. 5.
[JS] 스코프(scope) ## 스코프 -함수가 실행될때 함수 내에서 변수에 대한 접근이 어떻게 되는지를 나타내는 용어 -변수에 접근할수 있는 범위 ## 함수 스코프 -자바스크립트는 기본적으로 함수 스코프를 따르는 언어 -함수 스코프를 따른다 = 새로운 함수가 생성될때마다 새로운 스코프가 발생한다. = 함수 몸체에 선언한 변수는 해당 함수 안에서만 접근할수 있음 ## 블록스코프 - 블록 스코프는 말 그대로 블록 {}이 생성될때마다 새로운 스코프가 형성되는 것을 의미 -원래 자바스크립트는 함수 스코프를 따르지만, let 과 const 키워드의 등장으로 블록 스코프를 형성하는 것도 가능해졌다. var => 함수스코프 let, const => 블록스코프 2023. 11. 5.
[JS] 문자열 자르기 난 문자열자르는방법을 split('')해서 배열로 나타내고 그걸 필요한것만 건져내고 그걸 join으로 다시 합치는 방법만을 생각해왔다. 근데 코딩테스트 문제 풀다가 substr의 존재를 알아버렸다. substr함수로 문자열 자르는 방법 let str = '자바스크립트'; let result1 = str.substr(0,2); //결과: "자바" let result2 = str.substr(2,4); //결과: "스크립트" let result3 = str.substr(2); //결과: "스크립트" 근데 mdn찾아보니까 경고가 있다..... 꽤나 조심히 사용해야할분위기이다..... String.substring() 이거로 쓰면 될것같다. array.slice()와 같은 개념으로 생각하면 된다!! 2023. 11. 2.
[JS] 함수 add() -이름으로 정의된 함수(add)를 호출할때 괄호를 추가한다. -함수가 필요한 모든 매개변수가 괄호 안에 들어가거나 매개변수가 필요하지 않은 경우 빈 괄호를 추가한다. someButton.addEventListener('click', add); -함수를 바로 실행하고 싶지 않을때 -미래의 어느시점(일부 이벤트가 발생할때) 실행되길 원할때 someButton.addEventListener('click', add()); 이건 잘못된 코드이다!!! 2023. 11. 2.