IE下JS的函数不支持设置默认值的解决方法

最初发表于: 2019-11-30 13:03:43

在IE下, JS不支持给函数设置默认值, 像下面这样的函数会报错

function love(a, b = 2, c = 1) {
    console.log(c)
}

从而造成一些兼容性问题, 为了兼容IE, 上面函数可以这样写

 function love(a, b, c) {
    //设定第2个变量的默认值
    var n = 2
    var b = arguments.length > n - 1 && arguments[n - 1] !== undefined ? arguments[n - 1] : 2 //这个2是b的默认值, 写这儿

    //设定第3个变量的默认值
    var n = 3
    var b = arguments.length > n - 1 && arguments[n - 1] !== undefined ? arguments[n - 1] : 1 //最后这个1是c的默认值, 写这儿

    console.log(c)
}

IE下给函数的参数设定默认值的格式如下

function love(变量a){
  var n = 变量a是第几个参数
  var 变量a = arguments.length > n - 1 && arguments[n - 1] !== undefined ? arguments[n - 1] : 变量a的默认值;
}