변수
let, const-상수형이라 변경 불가
자료형
` : 문자열 사이에 변수를 넣기 위해서 사용
const name = "mike";
const message = "my name is ${name}`;
console.log(message);
다른 자료형과 더하면 문자열 된다
숫자사용할때 nan 조심하기
null vs undefined
null -> 존재x
undefined -> 선언만 하고 값은 없다
alert, prompt, confirm
const name = prompt("이름을 입력하세요","OOO");
alert(`안녕하세요, ${name}님 환영합니다`);
prompt -> 두번째 인자 = 디폴트값
confirm() -> yes or no = true or false로 반환 된다
단점 : 프로그램이 멈추고 디자인 불가능
장점 : 빠르고 쉽다
형변환
String(),Number(),Boolean()
prompt로 입력받는 값은 문자열로 들어온다
들어온 값을 연산하고 싶으면 정확하게 number()를 사용해야한다
나누기는 자동 형변환이 되지만 자동형변환은 오히려 알수 없는 오류를 발생시키기 때문에 명시적 형변환을 사용하자
prompt에서 아무것도 입력 안하면 null반환한다
Number(null) // 0
Number(undefined) // nan
Number()->false = 0, "" true = '0', ' ' ->실수조심
비교 연산자, 조건문
== -> 값만 비교
=== -> 자료형까지 비교
function
return만 쓰면 undefined로 리턴한다, return을 따로 명시안해도 마찬가지
함수 표현식
인터프리터 언어 -> 위에서부터 내려오면서 즉각 결과를 보여주는 함수
호이스팅 -> 코드를 실행하기 전 코드에 명시되어있는 모든 함수를 따로 빼두고 코드를 실행시킨다
//함수 선언문 -> 호이스팅 때문에 함수위치는 어디에 있던지 상관 없음
function sayHello(){
console.log('Hello');
}
sayHello();
//함수 표현식
let sayHello = function(){
console.log('Hello');
}
sayHello();
실수 방지하기 위해서는 그냥 함수 선언문 형식으로 사용하자
화살표 함수
let add = function(num1, num2) {
return num1 + num2;
}
//리턴이 한줄이면
let add = (num1, num2) => num1 + num2;
//매개변수가 없더라도 괄호는 필요
let say = () => console.log("hi");
//function을 지울 수 있고 => 사용함으로서 가시성이 좋다
객체
let superman = {
name : 'clark',
age : 33,
}
//객체 생성
//접근방법 : superman.name || superman['name']
let name = clark;
let age = 33;
let superman = {
name : 'clark',
age : 33,
}
->
let superman = {
name,
age,
}
//추가도 간단히 가능
superman.hair = 'bold';
// in 사용해서 존재여부 확인 간으
'age' in superman; -> true || false
//객체안에서 for 사용하기
for(let key in superman){
console.log(key);
}
객체-method, this
let superman = {
name : 'mike',
age : 33,
fly : function(){
console.log("날아갑니다")
}
fly(){console.log("날아갑니다")}
}
this -> 자기 자신을 가리킬때 사용한다
const user = {
name : "mike",
sayhello(){
console.log(`hi + ${this.name}`);
}
}
//객체안에서 화살표 함수는 다르게 생겼다
const user = {
name : "mike",
sayhello:()=>{
console.log(`hi ${this.name}`);
}
}
//화살표 함수는 this를 이해하지 못하기 때문에 객체안에서는 그냥 함수 사용하자
배열
.push() 추가
.pop() 삭제
탐색할때는 for of로 사용하자
let days=['월','화','수']
for (let day of days){
console.log(day)
}