[AngularJS 2] 문자열의 바이트(Byte) 길이 구하기.
안녕하세요. 데프홍입니다.
AngularJS 언어로 웹 페이지 개발을 하면서, 이것저것 구글링을 하면서 찾아가면서 작업을 해 왔었는데, 이번에는 조금씩 유용하게 써먹었던 것들을 정리해보면서 나열을 해 볼까 합니다.
당장은 많은 것들을 올려두지는 못하지만, 틈나는 대로 조금씩 올려서 정리를 해보겠습니다.
참고로 AngularJS 2 그 이상에서는 Typescript 을 쓰므로, 해당 언어에 맞춰서 작성했습니다. ( 17.08.30 현재 Angular 4 사용하여 개발중 )
[문자열의 바이트(Byte) 길이 구하기 by AngularJS 4]
//권장하는 Byte 계산 로직문
let stringByteLength = ((s, b, i, c) => {
for(b=i=0;c=s,charCodeAt(i++);b+=c>>11?3:c>>7?2:1);
return b;
});
//how to use?
const testString = 'testString';
let length = stringByteLength(testString);
console.log(length);
//크롬 개발툴에서 확인해보기.
//---start---
console.time("개선된FOR방식");
var string = 'testTesttestTest';
var stringByteLength = (function(s,b,i,c){
for(b=i=0;c=s.charCodeAt(i++);b+=c>>11?3:c>>7?2:1);
return b
})(string);
console.log(stringByteLength + " Bytes");
console.timeEnd("개선된FOR방식");
//---end---
//result
//16 Bytes
//개선된FOR방식: 0.19677734375ms
UTF-8 인코딩 방식에서는 한글은 3바이트로 계산.
자세한 설명은 아래 블로그 주소를 클릭하면 됩니다.
출처 : http://programmingsummaries.tistory.com/239
원문 : https://gist.github.com/mathiasbynens/1010324