본문 바로가기
Javascript

유용한 자바스크립트 팁

by @hohoya33 2020년 01월 03일

!!연산자를 사용하여 boolean 변환

function Account(cash) {  
  this.cash = cash;  
  this.hasMoney = !!cash;  
}

var account = new Account(100.50);
console.log(account.cash); // 100.50  
console.log(account.hasMoney); // true

var emptyAccount = new Account(0);
console.log(emptyAccount.cash); // 0  
console.log(emptyAccount.hasMoney); // false

+연산자를 사용하여 숫자 변환

function toNumber(strNumber) {  
  return +strNumber;  
}

console.log(toNumber("1234")); // 1234  
console.log(toNumber("ACB")); // NaN  
console.log(+new Date()) // 1461288164385

짧은 if문

if (conected) {
  login();
}

conected && login();
user && user.login();

||연산자를 이용한 기본값

function User(name, age) {
  this.name = name || "Oliver Queen";
  this.age = age || 27;
}

var user1 = new User();
console.log(user1.name); // Oliver Queen
console.log(user1.age); // 27

var user2 = new User("Barry Allen", 25);
console.log(user2.name); // Barry Allen
console.log(user2.age); // 25

배열 array.length 루프 캐싱

var length = array.length;

for(var i = 0; i < length; i++) {
  console.log(array[i]);
}

for(var i = 0, length = array.length; i < length; i++) {
  console.log(array[i]);
}

배열 마지막 요소

var array = [1,2,3,4,5,6];

console.log(array.slice(-1)); // [6]
console.log(array.slice(-2)); // [5,6]
console.log(array.slice(-3)); // [4,5,6]

배열 자르기

var array = [1,2,3,4,5,6];
console.log(array.length); // 6

array.length = 3;
console.log(array.length); // 3
console.log(array); // [1,2,3]

배열 병합

var array1 = [1,2,3];
var array2 = [4,5,6];
console.log(array1.concat(array2)); // [1,2,3,4,5,6];
//concat 함수는 새배열을 만들어 많은 메모리를 소비하므로 큰 배열을 병합하는데 적합하지 않음

var array1 = [1,2,3];
var array2 = [4,5,6];
console.log(array1.push.apply(array1, array2)); // [1,2,3,4,5,6];

NodeList 배열 반환

var elements = document.querySelectorAll("p"); // NodeList
var arrayElements = [].slice.call(elements); // Now the NodeList is an array
var arrayElements = Array.from(elements); // This is another way of converting NodeList to Array

// sort(), reduce(), map(), filter()

배열 요소 섞기

var list = [1,2,3]; 
console.log(list.sort(function() { Math.random() - 0.5 })); // [2,1,3]

 

문자열 모두 교체

var string = "john john";
console.log(string.replace(/hn/, "ana")); // "joana john"
console.log(string.replace(/hn/g, "ana")); // "joana joana"

개의 댓글