let(변수), const(상수)
15년도 이전 => var
let 재할당 가능, 재선언 불가능
const 재할달 불가능, 재선언 불가능
1)
function add() { }
2)
var add = function () { }
var add = () => { return 1 }
var add = () => 1;
console.log(true ? '참' : '거짓')
console.log(1 === 1 ? '참' : '거짓')
let [value1, vlaue2] = [1, 'new']
console.log('1', value1)
console.log('2', value2)
let arr = ['value1', 'value2', 'value3']
let [a, b, c, d] = arr
console.log(a)
console.log(b)
console.log(c)
console.log(d)
let {name, age} ={
name: 'Jhon',
age: 34,
}
let {name1, age1} = {
name: 'Jhon',
age: 33,
}
console.log(name) //string
console.log(age) //number 타입으로 변경
let user ={
name: 'Jhon',
age: 34,
}
let {name: newName, age: newAge} = user
console.log('newName =>', newName)
console.log('newAge =>' , newAge)
const name = 'gray'
const age = '22'
const obj = { name: name, age: age }
const obj = {
name,
age,
}
= const obj1 = {name: name,age: age};
-> 배열같지만 객체이다.
let arr = [1, 2, 3]
console.log(arr)// [1, 2, 3]
console.log(...arr)// 1, 2, 3
//기존의 구조를 벗어나 새로운 구조로 덧입혀야 할 때 쓴다
let arr1 = [1, 2, 3]
let newArr = [...arr1,4]
console.log(arr)
console.log(newArr)
// 배열 뿐 아니라 객체에도 적용된다.
// 객체에 적용
let user = {
name: 'john',
age: 21,
}
let user2 = {...user}
console.log(user)//{ name: 'john', age: 21 }
console.log(user2)//{ name: 'john', age: 21 }
// 기존에 있던 객체를 중괄호를 풀어 완전히 스프레드(퍼지게)
// 중괄호로 다시 묶을 수 있게 퍼지게 한 것.
// 다만 묶지 않아도 많은 활용도가 있다.
// 결론적으로 핵심은 spread 하는 것이다.
// 나머지 매개변수(reset parameter)
function exampleFunc (a, b, c) {
console.log(a, b, c) //1, 2, 3
}
exampleFunc(1, 2, 3)
function exampleFunc (a, b, c, ...args) {
console.log(a, b, c)// 1, 2, 3
console.log(...args)// 빈칸
}
exampleFunc(1 ,2 ,3)
function exampleFunc (a, b, c, ...args) {
console.log(a, b, c) //1, 2, 3
console.log(args)//[4, 5, 6, 7, 8, 9] => 배열 형태로 표시된다.
}
exampleFunc(1 ,2 ,3 ,4 ,5 ,6, 7, 8, 9)
console.log('hello world')
// 백틱(``) -> js코드, 변수, 연산 들어갈 수 있는데 백틱 사이에 ${}를 넣어주면 된다.
console.log(`Hello worold ${4*3}`)// Helloworld 12
const test = '안녕하세요'
console.log(`Helloworld ${test}`)// Helloworld 안녕하세요
//멀티 라인을 지원한다 -> 사용자가 표현할 수 있는 편리성을 제공
console.log(`hello my name is java
my world
good to see you again`)
다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체(중요!)
매우 유연하게 사용할 수 있다.
const sayHello = function() { console.log('hello') }function call (func) {
// 매개변수로 받은 변수가 사실, 함수이다
func();
}
const sayHi = function() {
console.log('Hi')//Hi
};
call(sayHi);
// func로 sayHi로 저장된 함수가 전달된다.
function create(num) {
return function(x) {
return x + num;
}
}
const add5 = create(5)
// create(5) = function(x) {return x + 5}
console.log(add5(10))//15
return을 함수로 할 수 있다 = 함수가 일급객체이기 때문
일급 객체로써의 함수
const person = {
name: "Horn",
age: 12,
isMarried: false,
sayHello: function () {
console.log("my name is " + this.name);
// 여기서 this는 person이 된다.
console.log(`my name is ${this.name}`);
},