코딩하면서 모르는 내장함수가 있거나 헷갈릴때마다 정리
let arr1 = [];
console.log(arr1.length === 0) // true
console.log(arr1 === []) // false -> arr1과 []의 주소값이 다르기 때문에 false라고 나온다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/from
//특정 데이터로 부터 배열을 만듬.
console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]
console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]
배열을 뒤집음.
let t = "가나다"; t.split("").reverse().join();
- split()
- 특정 문자로 문자열을 자름
let words = " " //공백 2번
let arr = words.split(" ");
console.log(arr) //["","",""];
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
const elements = ['Fire', 'Air', 'Water'];
console.log(elements.join());
// expected output: "Fire,Air,Water"
console.log(elements.join(''));
// expected output: "FireAirWater"
console.log(elements.join('-'));
// expected output: "Fire-Air-Water"
const arr1 = [1,2,3];
const arr2 = [4,5,6];
let arr3 = [0,...arr1, ...arr2,7];
console.log(arr3) // [0,1,2,3,4,5,6,7]
function getAllParams(...args){
return args;
}
getAllParms("a","b","c")
- 매개변수보다 적은 인자를 전달할 경우
function getAllParams(required1, required2, ...args) {
return [required1, required2, args];
}
const t = getAllParams(123);
console.log(t) = [123,undefined,Array(0)];
function splitfunc(index, character, str) {
str = str.slice(0,index-1) + character + str.slice(index, str.length) //상황에 맞게 적절히수정해서 사용
return str;
}
해쉬테이블
처럼 동적으로 프로퍼티를 추가할수 있다.Object.keys(obj1) // 객체의 key들이 배열로 나온다.
Object.values(obj1) //배열로 나온다.
Object.entries(obj1); //2차원 배열로 나온다. [[key1,value1], [key2,value2], ...]
Object.keys(obj1).includes(key) // 이방법은 매우 느린방법
obj1.hasOwnProperty(key) //프로토타입객체는 탐색하지않음. 일반적으로 추천하는 방법
Object.keys(obj1).length // key의 개수를 배열로 반환하고 그 배열의 길이를 구함.
// Object.assign(target, source)
// muttable
// 인자에 주소값이 있으면 주소값을 복사함. 깊은복사 안됨.
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
/* target에 source를 추가. 곂치는 key값은 source값으로 할당 */
const returnedTarget = Object.assign(target, source);
console.log(target); Object { a: 1, b: 4, c: 5 }
console.log(returnedTarget); Object { a: 1, b: 4, c: 5 }
공부하면서 함수도 각자 객체가 생성이 된다고 봤던것같다. 프로토타입과 관련이 있는듯하다. 공부하고 수정예정이다.
function getAllParamsByArgumentsObj() {
return arguments;
}
const argumentsObj = getAllParamsByArgumentsObj('first', 'second', 'third');
console.dir(argumentsObj) // Arguments객체 반환 {0:"first", 1:"second", 2:"third", }
const student = { name: '박해커', major: '물리학과' }
const { name } = student;
console.log(name) // "박해커"
/* spread문법 사용 */
const student = { name: '최초보', major: '물리학과' }
const { name, ...args } = student
console.log(args) // major:"물리학과";
const student = { name: '최초보', major: '물리학과', lesson: '양자역학', grade: 'B+' }
function getSummary({ name, lesson: course, grade }) {
return arguments;
}
getSummary(student) //객체로 반환됨 name, lesson, major, grade -> key
function test(key){
let obj = {[key]: true}
console.log(obj) // { temp : true};
}
test("temp");
mutable | immutable |
---|---|
splice() | slice() |
Object.assign | join() |