ie11 strict use 报错_ie11对es6支持的问题

startsWith的mdn,这个你的看看,ie根本就没事实现这个方法,你既然使用了babel-polyfill,那么你应该是看不到startsWith这个方法的,所以应该是没有被转译,想想引得babel-polyfill是否正确,考虑使用mdn提供的转译再写一遍。

/*! http://mths.be/startswith v0.2.0 by @mathias */

if (!String.prototype.startsWith) {

(function() {

'use strict'; // needed to support `apply`/`call` with `undefined`/`null`

var defineProperty = (function() {

// IE 8 only supports `Object.defineProperty` on DOM elements

try {

var object = {};

var $defineProperty = Object.defineProperty;

var result = $defineProperty(object, object, object) && $defineProperty;

} catch(error) {}

return result;

}());

var toString = {}.toString;

var startsWith = function(search) {

if (this == null) {

throw TypeError();

}

var string = String(this);

if (search && toString.call(search) == '[object RegExp]') {

throw TypeError();

}

var stringLength = string.length;

var searchString = String(search);

var searchLength = searchString.length;

var position = arguments.length > 1 ? arguments[1] : undefined;

// `ToInteger`

var pos = position ? Number(position) : 0;

if (pos != pos) { // better `isNaN`

pos = 0;

}

var start = Math.min(Math.max(pos, 0), stringLength);

// Avoid the `indexOf` call if no match is possible

if (searchLength + start > stringLength) {

return false;

}

var index = -1;

while (++index < searchLength) {

if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {

return false;

}

}

return true;

};

if (defineProperty) {

defineProperty(String.prototype, 'startsWith', {

'value': startsWith,

'configurable': true,

'writable': true

});

} else {

String.prototype.startsWith = startsWith;

}

}());

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值