Tal*_*lon 86 javascript jquery
我创建了一个这样的函数:
function saveItem(andClose = false) {
}
Run Code Online (Sandbox Code Playgroud)
它在Firefox中运行良好
在IE中,它在控制台上出现此错误:
Expected ')'
在Chrome中,它会在控制台中出现此错误:
Uncaught SyntaxError: Unexpected token =
两个浏览器都将错误源标记为函数创建行.
juc*_*uco 125
你做不到这一点,但你可以这样做:
function saveItem(andClose) {
if(andClose === undefined) {
andClose = false;
}
}
Run Code Online (Sandbox Code Playgroud)
这通常缩短为:
function setName(name) {
name = name || 'Bob';
}
Run Code Online (Sandbox Code Playgroud)
更新
以上情况适用于ECMAScript <= 5.ES6提出了默认参数.所以上面可以改为:
function setName(name = 'Bob') {}
Run Code Online (Sandbox Code Playgroud)
Javascript不允许使用"默认"说明符.
做你想要的快速方法是改变:
function saveItem(andClose = false) {
}
Run Code Online (Sandbox Code Playgroud)
以下内容:
function saveItem(andClose) {
// this line will check if the argument is undefined, null, or false
// if so set it to false, otherwise set it to it's original value
var andClose = andClose || false;
// now you can safely use andClose
if (andClose) {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)