Javascript 脚本1006:预期值(';)';

Javascript 脚本1006:预期值(';)';,javascript,Javascript,在下面的函数中,IE表示缺少“'): function padZeros(num, size = 4) { var s = num+""; while (s.length < size) { s = "0" + s; } return s; } 函数padzero(num,size=4){ var s=num+“”; 而(s.长度1&&arguments[1]!==未定义?arguments[1]:4; var s=num+“”; 而(s.

在下面的函数中,IE表示缺少“'):

function padZeros(num, size = 4) {
    var s = num+"";
    while (s.length < size) {
        s = "0" + s;
    }
    return s;
}
函数padzero(num,size=4){
var s=num+“”;
而(s.长度<尺寸){
s=“0”+s;
}
返回s;
}

我遗漏了什么?

问题是Internet Explorer不理解“参数的默认值”-这是ES2015+,由于IE的开发早就停止了,新型ES2015+语法不可能适用于IE

尝试使用像这样的transpiler,直到IE正式死亡

function padZeros(num) {
    var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4;

    var s = num + "";
    while (s.length < size) {
        s = "0" + s;
    }
    return s;
}
函数padzero(num){
var size=arguments.length>1&&arguments[1]!==未定义?arguments[1]:4;
var s=num+“”;
而(s.长度<尺寸){
s=“0”+s;
}
返回s;
}

发生这种情况是因为您试图在不受支持的IE浏览器上运行Javascript ES6代码

ECMAScript 6,也称为ECMAScript 2015,是ECMAScript标准的最新版本。ES6是对该语言的重大更新,也是自2009年ES5标准化以来对该语言的首次更新

请查看以下文档以了解更多详细信息

具有默认值的函数:

支持的浏览器列表:

以下是所有浏览器的更新代码

function padZeros(num, size) {
 var s = num+"";
 while (s.length < size) {
  s = "0" + s;
 }
 return s;
}
padZeros(10,4)/*10 is your num and 4 is your pad size*/
函数padzero(num,size){
var s=num+“”;
而(s.长度<尺寸){
s=“0”+s;
}
返回s;
}
padZeros(10,4)/*10是您的数字,4是您的焊盘大小*/

发生这种情况是因为您试图在不受支持的IE浏览器上运行Javascript ES6代码

ECMAScript 6,也称为ECMAScript 2015,是ECMAScript标准的最新版本。ES6是对该语言的重大更新,也是自2009年ES5标准化以来对该语言的首次更新

请查看以下文档以了解更多详细信息

具有默认值的函数:

支持的浏览器列表:


以下是Microsoft Edge中所有浏览器的更新代码,不支持直接在函数中传递值。它被认为是错误文件,所以我们得到错误

function padZeros(num, size) {
 var s = num+"";
 while (s.length < size) {
  s = "0" + s;
 }
 return s;
}
padZeros(10,4)/*10 is your num and 4 is your pad size*/
试试下面的代码

函数padzero(num){
变量大小=4;
var s=num+“”;
而(s.长度<尺寸){
s=“0”+s;
}
返回s;

}
可能是因为IE不支持默认参数。有没有什么流行的解决方法可以在谷歌上搜索,这样我就可以使用默认参数,但不会导致任何错误?不用考虑,我已经基于默认参数构建了很多函数。我想到的唯一方法是使用一个全局变量来保持默认值,然后在使用ie不同参数执行函数后,将其设置回原始值。。。我假设有更好的解决方案?您可以使用
size=size | | 4
,但它在0上失败,因为0是错误的。我会尝试一个
typeof
检查是否有未定义:
size=typeof size==“未定义”?4:size
或相近的值。@AndrewLi,对于这个特殊用途,您不太可能通过零。将数字格式化为零位数的目的是什么?:-)我将庆祝Internet Explorer最终消亡的那一天感谢大家的参与,在所有的建议中,我认为这一条似乎提供了最基本的相同功能,同时它是一种通用的方式,可以修复所有剩余的代码,而无需进行大量修改。我最初是这样读的“IE不理解参数的默认值。。。试着使用一个transpiler,直到IE正式使用为止”,当我意识到这个词实际上已经死了时,我感到一阵宽慰。babel(和其他transpiler)真的很棒-不幸的是,他们延长了IE的寿命!哈哈哈“互联网爆炸者”“:D多么真实。。。我的整个网站看起来就像一枚炸弹,引爆了IE 11。非常感谢,我将通过上面的链接了解这些知识。