반응형
js문법 속도 측정 사이트를 알게된 이상 한번 정리하는 겸 테스트해봄. 각 테스트마다 문법이 여러개가 있는것도 있지만 상위 4,5위까지만 가져와봄. 덕분에 잊고있었던 문법공부도 다시 하게댐 후후
테스트 브라우저: 크롬
----------------------------------------------
1. array 복사해서 만들기
json stringify는 자주썼는데 이거 좋은 방법이 아니네 어쩐지 어디서 느리다는걸 본적이 있는데.. 앞으로는 slice나 concat을 써야할듯(참고로 concat은 원본 array와 참조된 링크가 끊겨서 안심하고 써도 됨).
var testArray = [29, 27, 28, 838, 22, 2882, 2, 93, 84, 74, 7, 933, 3754, 3874, 22838, 38464, 3837, 82424, 2927, 2625, 63, 27, 28, 838, 22, 2882, 2, 93, 84, 74, 7, 933, 3754, 3874, 22838, 38464, 3837, 82424, 2927, 2625, 63, 27, 28, 838, 22, 2882, 2, 93, 84, 74, 7, 933, 3754, 3874, 22838, 38464, 3837, 82424, 2927, 2625, 63, 27, 28, 838, 22, 2882, 2, 93, 84, 74, 7, 933, 3754, 3874, 22838, 38464, 3837, 82424, 2927, 2625, 63];
// 1위 concat
var obj2 = [].concat(testArray);
// 2위 slice
var obj2 = testArray.slice();
// 3위 index
var obj2 = [];
for (var i = 0, l = testArray.length; i < l; i++) {
obj2[i] = testArray[i];
}
2. object에서 key있나 체크
속도가 다들 준수하셔서 뭘 써도 될듯.
var testObj = {a: 28, b: 82, c: "hello", d: 983, e: 'lara', o: "key", f: '82828', g: 8};
// 1위 undefined
var result;
if (testObj.key !== undefined) {
result = true;
}
// 2위 in
var result;
if (var key in testObj) {
result = true;
}
// 3위 hasOwnProperty
var result;
if (testObj.hasOwnProperty("key")) {
result = true;
}
3. string에서 문자열 찾기
indexOf만 인덱스값 알려주고 나머지는 boolean으로 리턴함.
var str = "nasd.n.kasdkskdnfkjsdfkjhsdfiuhsdfiusadfiuhsdfiöhsdifhsäodfjiosdfisdfsdfnosdfiosdf89sdfs98pdfzp98sdf98psfzp8sfzp8sfzp89szfp8snasd.n.kasdkskdnfkjsdfkjhsdfiuhsdfiusadfiuhsdfiöhsdifhsäodfjiosdfisdfsdfnosdfiosdf89sdfs98pdfzp98sdf98psfzp8sfzp8sfzp89szfp8snasd.n.kasdkskdnfkjsdfkjhsdfiuhsdfiusadfiuhsdfiöhsdifhsäodfjiosdfisdfsdfnosdfiosdf89sdfs98pdfzp98sdf98psfzp8sfzp8sfzp89szfp8snasd.hellon.kasdkskdnfkjsdfkjhsdfiuhsdfiusadfiuhsdfiöhsdifhsäodfjiosdfisdfsdfnosdfiosdf89sdfs98pdfzp98sdf98psfzp8sfzp8sfzp89szfp8s";
var needle = "hello";
var needleRegex = /hello/;
// 1위 includes (ES6)
var test = str.includes(needle);
// 2위 indexOf
var test = str.indexOf(needle);
// 3위 lodash includes 라이브러리
// 3위 regex (lodash없으면 3위)
var test = needleRegex.test(str);
// 4위 search
var test = str.search(needleRegex);
// 5위 match
var test = str.match(needleRegex);
4. array 비우기
[]는 지만 빈배열로 바꿔서 만약 참조된 원본 배열이 있다면 걔는 안건듬.
length = 0은 참조된 원본 배열까지 호로록 말아드심(주의).
var testArray = [83, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28];
// 1위 new init
testArray = [];
// 2위 length = 0
testArray.length = 0;
// 3위 splice
testArray.splice(0, testArray.length);
'Javascript' 카테고리의 다른 글
배열에서 중복된 값 제외하는 방법 (0) | 2022.09.29 |
---|---|
공백/텍스트없는 태그 유니코드로 잡아내기 (0) | 2022.08.24 |
event.target에서 element 이름 찾는 방법 & 효율성, matches와 contains 차이 (0) | 2022.06.27 |
공통 html을 다른 html파일에서 쓰기, html에 include하는 방법 (0) | 2022.06.22 |
if else vs if if 차이 (0) | 2022.06.10 |