- JavaScript
JavaScript 란?
- 웹 페이지에서 복잡한 기능을 구현할 수 있는 스크립팅 또는 프로그래밍 언어 다.
JavaScript 문법
변수
변수 이름 : 저장된 값의 고유 이름
변수 값 : 변수에 저장된 값
변수 할당 : 변수에 값을 저장하는 행위
변수 선언 : 변수를 사용하기 위해 컴퓨터에 알리는 행위
변수 참조 : 변수에 할당된 값을 읽어오는 것
변수를 선언할 수 있는 3가지 방법 : var, let, const
var
var var1 = "Hello"
var var1 = "Hi"
var1 = "GoodBye"
똑같은 이름으로 다시 선언 가능
값 재할당 가능
let
let let1 = "Hello"
let1 = "GoodBye"
똑같은 이름으로 다시 선언 불가
값 재할당 가능
const
const const1 = "Hello"
똑같은 이름으로 다시 선언 불가
값 재할당 불가
데이터 타입
- JavaScript는 대부분 runtime에서 실행되는 언어.
- runtime : 실제 코드가 실행될 때 데이터 타입이 결정됨
- (typeof 변수명) 으로 타입 확인 가능.
숫자
- 숫자 -
1. 정수 ( let num1 = 10 )
2. 실수 ( let num2 = 3.14 )
3. 지수형 ( let num3 = 2.5e5 ) // 2.5 x 10^5
4. NaN ( 숫자가 아닌값을 변환 할려고 할 때 나타나는 현상 ) ( let num4 = "Hello" / 2 )
5. Infinity ( let num5 = 1 / 0 )
6. -Infinity ( let num6 = -1 / 0 )
문자
- 문자 string( 문자열 = 문자의 나열 ) // ' ' = " "
- (변수명.lenght) 으로 문자열 길이 확인 가능.
문자열 결합 (concat)
let str1 = "Hello,"
let str2 = "World!"
let result = str1.concat(str2)
console.log(result)
문자열 자르기(substr, slice)
let str3 = "Hello, World!"
console.log(str3.substr(7, 5))
console.log(str3.slice(7, 12))
문자열 검색(search)
let str4 = "Hello, World!"
console.log(str4.search("World!"))
문자열 대체(replace)
let str5 = "Hello, World!"
let result01 = str5.replace("World!", "Javascript!")
console.log(result01)
문자열 분할(split)
let str6 = "apple, banana, kiwi"
let result02 = str6.split(",")
console.log(result02)
불리언 (Boolean)
- true (참)
- false (거짓)
- undefined (정의되지 않은)
- null (값이 존재하지 않음을 '명시적' 으로 나타내는 방법)
※ undefined = 정의 되지 않은 값
※ null = 개발자가 의도적으로 값이 없다라는걸 명시하기 위해서 넣은 값
true, false
let bool1 = true
let bool2 = false
console.log(bool1)
console.log(bool2)
console.log(typeof bool1)
console.log(typeof bool2)
undefined, null
let x
console.log(x)
let y = null
console.log(y)
객체 (Object)
- key (키값)
- value (결과값)
- 하나의 변수에 여러개의 값을 넣을 수 있다.
- Object.keys() (key를 가져오는 메소드)
- Object.values() (value를 가져오는 메소드)
- Object.entries() (key 와 value 를 묶어서 배열로 만든 배열 (2차원 배열))
- Object.assign() 객체 복사
() 안에는 target(어디에) , source(무엇을) + 추가로 바꾸고 싶은 내용은 { 안에서 따로 바꿀 수 있음 }
- 객체 비교 (객체와 배열은 다른 데이터타입에 비해서 크기가 상당히 크다)
-> 메모리에 저장할 때 별도의 공간에 저장
- 객체 병합 ... : spread operator
key, value
let person = {
name: "박재민",
age: 24,
gender:"남자",
}
console.log(person.name)
console.log(person.age)
console.log(person.gender)
Object.keys
let keys = Object.keys(person)
console.log(keys)
Object.values
let values = Object.values(person)
console.log(values)
Object.entries
let entries = Object.entries(person)
console.log("entries => ", entries)
Object.assign
let newPerson = {}
Object.assign(newPerson, person, { gender: "여성"} )
console.log("newPerson => ", newPerson)
객체 비교
let person1 = {
name: "박재민",
age: 24,
gender:"남자",
}
let person2 = {
name: "박재민",
age: 24,
gender:"남자",
}
console.log(person1 === person2)
--------------------------------------------------------------------------
console.log(JSON.stringify(person1) === JSON.stringify(person2))
let str1 = "aaa"
let str2 = "aaa"
console.log("answer => ", str1 === str2)
객체 병합
let person1 = {
name: "박재민",
age: 30,
}
let person2 = {
gender: "남자",
}
let perfectMan = {...person1, ...person2}
console.log(perfectMan)
느낀점
오늘 1주차 JavaScript 문법에 대해서 강의 듣고 공부해봤다. 그리고 코딩테스트 문제도 풀어봤는데 알던 개념도 많이 헷갈렸다. 그런 문제들을 풀기 위해선 문제를 보고 제시하는 내용에 대한 아이디어가 잘 떠올라야 할 것 같다. 문제를 보고 바로 '코드로 이렇게 짜야하나?' 하면서 고민했더니 답도 안나오고 시작을 못뗐는데, 차근차근 주석달면서 한글로 적다보니 어느정도 갈피가 잡혔었다. 오늘 풀었던 문제 말고도 다른 쉬운 문제도 많이 있어서 기초 문제들 부터 풀면서 연습해봐야겠다.