Preface
코드를 작성하며 중간중간 GPT에게 물어봤던 자바스크립트 관련 질문을 한 곳에 모아두고자 글을 업로드한다.
- var, let, const의 차이점
1) `var`: `var` 키워드는 ES5 이전에 사용되던 변수 선언 방식입니다. `var`로 선언된 변수는 함수 스코프를 갖습니다. 함수 내에서 선언된 `var` 변수는 해당 함수 내에서만 접근할 수 있으며, 함수 외부에서는 접근할 수 없습니다. 또한, `var` 변수는 재선언 및 재할당이 가능합니다. 이러한 특징으로 인해 `var` 변수는 호이스팅(hoisting) 현상이 발생할 수 있습니다.
2) `let`: `let` 키워드는 ES6에서 도입된 블록 스코프를 갖는 변수 선언 방식입니다. `let`으로 선언된 변수는 해당 블록(중괄호 `{}`) 내에서만 접근할 수 있습니다. 블록 내에서 선언된 `let` 변수는 외부에서 접근할 수 없으며, 재선언은 허용되지 않습니다. 그러나 재할당은 가능합니다. `let` 변수는 호이스팅되지 않습니다.
→ 일반적으로 사용
3) `const`: `const` 키워드는 블록 스코프를 갖는 상수를 선언하는 방식입니다. `const`로 선언된 변수는 선언 시에 초기값을 할당해야 하며, 이후 재할당이 불가능합니다. `const` 변수는 블록 내에서만 접근 가능하며, 재선언과 재할당이 모두 허용되지 않습니다.
- JavaScript에서 DOM 요소를 가져오는 방법
1) `getElementById`: 해당 ID를 가진 단일 요소를 가져옵니다.
var element = document.getElementById("elementId");
2) `getElementsByClassName`: 해당 클래스 이름을 가진 모든 요소를 가져옵니다. 반환되는 값은 HTMLCollection이므로 배열처럼 반복할 수 있습니다.
var elements = document.getElementsByClassName("className");
3) `getElementsByTagName`: 해당 태그 이름을 가진 모든 요소를 가져옵니다. 마찬가지로 HTMLCollection이 반환됩니다.
var elements = document.getElementsByTagName("tagName");
4. `querySelector`: CSS 선택자를 사용하여 요소를 가져옵니다. 가장 첫 번째 일치하는 요소만 반환됩니다.
var element = document.querySelector("selector");
5. `querySelectorAll`: CSS 선택자를 사용하여 일치하는 모든 요소를 가져옵니다. NodeList로 반환되므로 배열처럼 반복 가능합니다.
var elements = document.querySelectorAll("selector");
위의 메서드들은 주로 사용되는 방법 중 일부입니다. 각 메서드는 DOM 요소에 접근하여 조작할 수 있게 해줍니다. 가져온 요소를 사용하여 속성을 변경하거나 이벤트를 추가할 수 있습니다.
- `for...of`와 `for...in`의 차이점
`for...of`와 `for...in`은 JavaScript에서 객체나 배열의 속성을 반복하는 데 사용되는 두 가지 다른 반복문입니다.
각각의 동작과 사용 사례에 차이가 있습니다.
1) `for...of`:
- `for...of` 반복문은 반복 가능한(iterable) 객체(예: 배열, 문자열, Set, Map 등)의 요소를 반복합니다.
- 반복 과정에서 해당 객체의 값을 직접 가져옵니다.
- 인덱스 값이 필요하지 않으며, 요소에 집중하여 작업을 수행할 때 유용합니다.
- 객체의 순회에 적합하며, 순서가 중요한 경우 사용됩니다.
const arr = [1, 2, 3];
for (const element of arr) {
console.log(element);
}
// 출력: 1, 2, 3
2) `for...in`:
- `for...in` 반복문은 객체의 열거 가능한(enumerable) 속성을 반복합니다.
- 반복 과정에서 속성의 키를 가져옵니다.
- 객체의 프로토타입 체인을 통해 상속된 속성도 반복될 수 있습니다.
- 객체의 속성을 순회하거나 특정 속성을 찾는 등의 작업에 유용합니다.
const obj = { a: 1, b: 2, c: 3 };
for (const key in obj) {
console.log(key + ": " + obj[key]);
}
// 출력: a: 1, b: 2, c: 3
주의할 점은 `for...in` 반복문을 사용할 때는 열거 가능한 속성만 반복하며, 프로토타입 체인의 속성도 반복한다는 점입니다.
따라서, `for...of`는 반복 가능한 객체의 요소를 반복하고, `for...in`은 객체의 속성을 반복합니다.
각각의 사용 사례에 따라 적절한 반복문을 선택하여 사용하면 됩니다.
- jQuery의 `val( )` 메서드
jQuery의 `val( )` 메서드는 주로 HTML 폼 요소의 값을 가져오거나 설정하는 데 사용됩니다.
이 메서드는 선택한 요소의 값을 가져오기 위해 사용될 수도 있고, 값을 설정하기 위해 사용될 수도 있습니다.
예를 들어, `<input>` 요소의 값을 가져오거나 설정하고자 할 때 `val()` 메서드를 사용할 수 있습니다. 아래는 예시 코드입니다:
// 값을 가져오기
var value = $('input').val();
console.log(value);
// 값을 설정하기
$('input').val('새로운 값');
위의 예시에서 `$()`는 jQuery 함수로, 선택자를 사용하여 요소를 선택하고 해당 요소에 대해 작업을 수행하는 데 사용됩니다.
선택자 `input`은 `<input>` 요소를 선택합니다. `val()` 메서드는 선택한 요소의 값을 가져오거나 설정합니다.
반면에, 자바스크립트에서 기본적으로 제공되는 방법은 `value` 속성을 사용하여 값을 가져오거나 설정하는 것입니다.
jQuery를 사용하지 않고 자바스크립트로 동일한 작업을 수행하는 예시 코드는 다음과 같습니다:
// 값을 가져오기
var input = document.querySelector('input');
var value = input.value;
console.log(value);
// 값을 설정하기
input.value = '새로운 값';
위의 예시에서 `querySelector()` 메서드를 사용하여 요소를 선택하고, `value` 속성을 사용하여 값을 가져오거나 설정합니다.
'Web Front > JavaScript' 카테고리의 다른 글
jQuery Ajax (2) | 2023.06.04 |
---|---|
Ajax (0) | 2023.06.03 |
jQuery 찍먹 (0) | 2023.06.02 |
WEB2 - JavaScript (0) | 2023.05.25 |
댓글