키워드
어떤 역할이나 기능이 정해진 특별한 단어
식별자
변수, 함수 등에 부여되는 이름, '변수명'이라고도 합니다. 키워드는 식별자로 사용 불가합니다.
식별자 명명 규칙
키워드 사용 불가, 공백 포함 불가, 한글 불가, 숫자로 시작 불가, 특수문자 포함 불가(_, $은 가능)
연산자
연산 작업에 사용되는 기호입니다.
표현식
평가되어 하나의 값을 반환하는 식 또는 코드입니다.
값
더 이상 평가할 수 없는 데이터입니다.
세미콜론(;)
자바스크립트에서 하나의 문(문법)이 끝났음을 의미합니다.
변수 선언
let
let의 특징
1. 변수명 중복 불가능합니다.
키워드 자체에서 중복선언을 차단하여서 다른 사람이 선언한 변수명을 재선언하는 경우 제거합니다.
let 선언 후 var와 같이 변수명 중복으로 사용하면 오류가 납니다.
2. 호이스팅되지 않습니다.
var 키워드로 선언, 할당했을 때, 변수 선언을 자바스크립트의 스코프* 맨 위로 올려 실행하는 것입니다.
#스코프: 변수에 접근할 수 있는 유효 범위
3. 스코프의 범위가 다릅니다.
const
객체(object)
빈 객체 생성 방법
1. '객체 생성자' 문법으로 생성하기
2. '객체 리터럴' 문법으로 생성하기 -> 중괄호 {...}를 이용해 객체를 선언하는 것
let user = new Object(); //객체 생성자 문법
let user = {}; //객체 리터럴 문법
리터럴과 프로퍼티
let user ={ //객체
name: "John", //키: "name", 값: "John
age: 30 //키: "age", 값: 30
};
객체의 값 호출하기
1. 온점(.)으로 호출
2. 대괄호([])로 호출
//1. 온점으로 호출하기
let user={
name:"John",
age:30
};
console.log(user.name);
console.log(user.age);
//2. 대괄호로 호출하기
console.log(user['name']);
console.log(user['age']);
let user={
name:"John",
age:30,
'user name':'choi',
3:3
};
console.log(user['user name']);
console.log(user['3']);
프로퍼티 추가하기
let user={
name:"John",
age:30
};
console.log(user);
user.time=5;
console.log(user);
프로퍼티 삭제하기(delete)
let user={
name:"John",
age:30
};
user.time=5;
delete user.age;
console.log(user);
실습2
1개의 표현식에 대해 산술, 대입, 논리(참거짓), 타입에 관해서 이것들을 평가해서 값을 생성하는 작업입니다.
1. 산술 연산자
2. 대입 연산자(할당 연산자)
let num = 10 + 20;
//=과 +
3. 비교 연산자
4. 논리 연산자
5. typeof 연산자
삼항연산자
let x = 2, y = 1;
let z = x > y ? "x가 y보다 더 큼" : "x가 y보다 더 작음";
console.log(z);
setter 함수와 getter 함수
const user = {
name: 'likelion',
age: 50,
// 객체의 메서드(함수)
getName() {
return user.name;
},
setName(value) {
user.name = value;
}
}
console.log(user.getName()); // likelion
user.setName('tistory');
console.log(user.name);
연산자 우선순위
명시적 형변환
1) String Type
-String() : 인자를 문자열로 변환한다.
-toString() : 인자로 기수를 받을 수 있다.
//String
String(22) // "22"
//toString
const foo = 22;
foo.toString() //”22"
foo.toString(2) // "10110"
2) Number Type
-Number() : 인자를 숫자로 변환한다.
-parseInt() : 인자를 정수형의 숫자로 변환한다. 이때 인자가 숫자 0으로 시작할 경우 8진수로 변환하고, 0x로 시작한다면 16진수 숫자로 변환한다. 또한 앞 부분에 공백 뒤에 문자가 나오는 경우 NaN을 반환한다.
//Number
Number("123") //123
//parseInt
parseInt(333.234) //333
parseInt(0134) // 92 (8진수)
parseInt(0x1b) // 27 (16진수)
parseInt( "가나") //NaN
3) Boolean Type
-Boolean : 인자를 불리언 값으로 변환한다.
Boolean("1") //true
//falsy value
값이 없는 경우
0
-0
null
false
NaN
undefinded
""
묵시적 형변환
1) String Type
-연산자 사용 시 피연산자 중 문자열이 하나라도만 있으면 String Type으로 변환됩니다.
-undefined 나 null도 문자열로 변환됩니다.
2) Number Type
-연산자를 제외한 산술 연산자(-, /, *, >, < 등) 사용시 Number Type으로 변환됩니다.
"2" + "2" //22
"2" - "2" //0
"2" * "2" //4
"2" / "2" //1
[0] - 1 //-1
-숫자 이외의 글자가 들어있는 문자열, 배열 및 undefined 는 숫자 타입으로 변환되지 않고 NaN(Not a Number)을 반환합니다.
"hello" - 1 //NaN
["hello"] -1 // NaN
undefined - 1 // NaN
3) 엄격하지 않은 동등 비교 (==)
true == 1; // true (true를 1로 변환)
false == 0; // true (false를 0으로 변환)
'1' == true; // true ('1'를 true로 변환)
'1' == 1; // true ('1'를 1로 변환)
4) 논리연산자(!!)
const arr = []
!!arr //true
자바스크립트의 근본 (0) | 2024.01.27 |
---|---|
[자바스크립트] 동기와 비동기, 콜백 함수, Promise, async, await (0) | 2023.04.13 |
[자바스크립트] DOM, 이벤트 (0) | 2023.04.13 |
[자바스크립트] 만 나이 계산기 코드 분석 (0) | 2023.04.09 |
[자바스크립트] 문자열, 배열, 조건문, 반복문, 에러 처리, 함수 (0) | 2023.04.09 |