IE에서 안되는 문법, 함수

-·2021년 3월 25일
0

IE 진짜 왜 아직까지 쓰는지 모르겠지만 쓰는사람이 있으니까 최대한 호환성 생각해줘야된다ㅜㅜ

람다식

setTimeout(() => {
    
}, milliseconds);

익스플로러는 => 이 의미를 아예 이해 못한다.

setTimeout(function () {

}, milliseconds);

이 경우에는 이런식으로 바꿔주자.

includes

개빡친다. 브라우저중에 IE만 안된다.

includes는 포함하면 true 없으면 false를 리턴한다.

const isInclude = arr.includes('something');

이 역시 인식하지 못한다.

if(arr.indexOf('something') > -1){

}

indexOf를 사용하자.

indexOf는 찾으면 그 index를 리턴한다. -1이라면 없다는 의미.

padStart

이 역시 IE만 안된다. 미친 브라우저다.

padStart는 현재 문자열의 시작을 다른 문자열로 채워, 주어진 길이를 만족하는 새로운 문자열을 반환합니다.

채워넣기는 대상 문자열의 시작(좌측)부터 적용됩니다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/padStart 를 보면

이런식으로 만들어주면 된다.

if (!String.prototype.padStart) {
    String.prototype.padStart = function padStart(targetLength,padString) {
        targetLength = targetLength>>0; //truncate if number or convert non-number to 0;
        padString = String((typeof padString !== 'undefined' ? padString : ' '));
        if (this.length > targetLength) {
            return String(this);
        }
        else {
            targetLength = targetLength-this.length;
            if (targetLength > padString.length) {
                padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed
            }
            return padString.slice(0,targetLength) + String(this);
        }
    };
}
profile
거북이는 오늘도 걷는다

0개의 댓글