증감 연산자
- 전위연산은 줄이 끝나기 전에 연산을 마침
-후위연산은 줄이 다 끝난 후에 연산을 마치므로 콘솔을 보면 연산 후 값이 적용되지 않음
비교 연산자
- ==를 사용하여 비교 연산을 하면 자바스크립트의 묵시적 형 변환으로 인해
1 == "1" 이 true로 나온다. 이를 방지하기 위해 ===를 사용하는 걸 권장하고 있다. (==는 엄격한 비교)
Null 병합 연산자
- null이 아닌 수를 찾아내므로 var4의 값은 10(var2)가 된다
- 모든 값이 null이 아니라면 첫번째 값을 선택한다 (var3와 var2 중에서 var3의 값이 var6이 됨)
- userName이 없는 경우라면 Winterlood를 반환하도록 하는 경우에 사용할 수 있다
typeof 연산자
삼항 연산자
호이스팅(끌어올리다)
- 자바스크립트는 호이스팅이라는 기능이 있다.
함수의 호출을 먼저 해도 자체적으로 함수를 끌어올려주기 때문에 오류가 발생하지 않는다.
함수 표현식
- 함수 자체가 콘솔에 출력된다. (함수 자체를 변수에 저장하기 때문이다)
익명함수
- varB는 콘솔에 함수가 출력되지 않고, 호이스팅도 불가하다.
화살표 함수
- 화살표(=>)를 사용하면 일반 함수와 똑같이 사용할 수 있다
콜백 함수 (callback function)
- 왼쪽의 코드를 콜백함수를 쓰면서 오른쪽과 같이 더 간단하게 만들 수 있다
스코프
- 전체 스코프: 전체 영역에서 접근 가능
- 지역 스코프: 특정 영역에서 접근 가능
>> 중괄호 안에서 선언된 변수는 중괄호 밖에서 접근 불가
객체(Object)
- 객체를 사용하면 현실에 존재하는 개념이나 사물을 표현하기 용이함
// 1. 객체 생성
let obj1 = new Object(); // 객체 생성자
let obj2 = {} // 객체 리터럴 (간단해서 더 많이 사용)
// 2. 객체 프로퍼티 (객체 속성)
let person = { // key : value
name: "이정환",
age: 27,
hobby: "테니스",
extra: {},
10: 20,
"like cat": true,
};
// 3. 객체 프로퍼티를 다루는 방법
// 3.1 특정 프로퍼티에 접근 (점 표기법, 괄호 표기법)
let name = person.name;
// 존재하지 않는 프로퍼티 접근 시 undefined 부여
console.log(name); // 이정환
let age = person["age"]; // 꼭 쌍따옴표 안에 속성을 작성, 문자열로 표시
let property = "hobby";
let hobby = person[property];
// 동적으로 속성에 접근하고 싶다면 괄호, 평소엔 간결한 점 표기 사용
// 3.2 새로운 프로퍼티를 추가하는 방법
person.job = "fe developer";
person["favoriteFood"] = "떡볶이";
// 3.3 프로퍼티를 수정하는 방법
person.job = "educator";
person["favoriteFood"] = "초콜릿";
// 3.4 프로퍼티를 삭제하는 방법
delete person.job;
delete person["favoriteFood"];
// 3.5 프로퍼티의 존재유무를 확인하는 방법 (in 연산자)
let result1 = "name" in person; // person 객체 안에 name 속성이 있는가?
console.log(result1); // true
// 1. 상수 객체 (상수에 저장된 객체)
const animal = {
type: "고양이",
name: "나비",
color: "black",
};
animal.age = 2; // 속성 추가
animal.name = "까망이" // 속성 수정
delete animal.color // 속성 삭제
// 객체값의 속성을 건드리는 것은 가능함
// 2. 메서드
// -> 값이 함수인 프로퍼티
const person = {
name: "이정환",
// 메서드 선언
sayhi() {
console.log("안녕");
},
};
// 함수 호출
person.sayhi();
person["sayhi"]();
'코딩 공부 > React.js 리액트' 카테고리의 다른 글
[3주차 -2] React.js 개론 (1) | 2024.10.15 |
---|---|
[3주차 - 1] Node.js 기초 (1) | 2024.10.12 |
2주차 퀴즈 (1) | 2024.10.09 |
[2주차] 자바스크립트 심화 (0) | 2024.10.06 |
자바 스크립트 기본 - 1 (실습 환경 조성, 데이터 타입, 형 변환) (1) | 2024.10.02 |