str1.concat(str2)
let str = "Hello, world!";
console.log(str.substr(7, 5)); // "world"
console.log(str.slice(7, 12)); // "world"
substr(n번째부터, n개까지만) 출력
slice(시작위치, 끝위치) 출력
let str = "Hello, world!";
console.log(str.search("world")); // 7
search: 내가 찾는 문자가 어디서부터 시작되는가에 대한 시작위치를 '숫자'로 표현
let str = "apple, banana, kiwi";
let result = str.split(",");
console.log(result); // ["apple", " banana", " kiwi"]
split("값") : 값 기준으로 분할하여 새로운 배열에 배열 만듬
let x;
console.log(x); // undefined
값이 할당되지 않은 변수를 의미함.
null은 값이 존재하지 않음을 명시적으로 나타내는 방법임. undefined와는 다름.
console.log(1 + "2"); // "12"
console.log("1" + true); // "1true"
console.log("1" + {}); // "1[object Object]"
console.log("1" + null); // "1null"
console.log("1" + undefined); // "1undefined"
자바스크립트는 다른 자료형을 '문자열'로 변환 후 연산 실행
console.log(1 - "2"); // -1
console.log("2" * "3"); // 6
console.log(4 + +"5"); // 9
연산자를 사용할 때, 문자열을 숫자로 변환. 빈 문자열("")이나 공백 문자열(" ")은 0으로 변환.
console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean("false")); // true
console.log(Boolean({})); // true
어떤 값이 true가 되고 false가 되는지 기억하자!!
문자열은 빈 문자열을 제외하고 항상 true!
객체도 true!
더하기 연산자를 제외하고는 다른 연산자들을 문자열과 숫자를 함께 쓸 경우 자동으로 숫자로 변환되어 계산된다!
let x = 10;
function printX() {
console.log(x);
}
printX(); // 10
전역 변수 x는 어디에서든 참조 가능!
function printX() {
let x = 10;
console.log(x);
}
printX(); //
함수 안에서 지역 변수를 설정하면 해당 함수 내에서만 참조 가능!
if (true) {
let x = 10;
console.log(x);
}
console.log(x); // ReferenceError: x is not defined
if 문 내에서 설정한 변수는 if 블록 안에서만 참조 가능!
let person = {
name: "홍길동",
age: 30,
gender: "남자"
};
let keys = Object.keys(person);
console.log(keys); // ["name", "age", "gender"]
person의 속성 이름(key)들을 배열로 반환.
let person = {
name: "홍길동",
age: 30,
gender: "남자"
};
let values = Object.values(person);
console.log(values); // ["홍길동", 30, "남자"]
person의 속성 값(value)들을 배열로 반환.
let person = {
name: "홍길동",
age: 30,
gender: "남자"
};
let entries = Object.entries(person);
console.log(entries);
객체의 속성 이름과 속성 값들을 2차원 배열로 반환.
let person = {
name: "홍길동",
age: 30,
gender: "남자"
};
let newPerson = Object.assign({}, person, { age: 35 });
console.log(newPerson); // { name: "홍길동", age: 35, gender: "남자" }
원래 객체를 복사하여 새로운 객체를 만드는 메소드. 뒤에 {}에서 값 변경도 가능!
객체를 ===연산자로 비교하면 같은 객체여도 false가 나온다.
객체는 크기가 크기 때문에 메모리에 저장할 때 별도의 공간에 저장되고, 객체의 내용이 같더라도 객체는 선언한 변수에는 별도의 공간에 대한 주소가 저장된다.
그러므로 ===연산자를 쓰면 false가 나온다!