无法将默认布尔参数设置为默认值
Unable to set default boolean parameter to a default
我一直在阅读关于为jQuery函数设置默认参数的方法。我喜欢在函数中创建一个JSON对象,并使用extend来合并任何传递的选项。但现在我有一个定义如下的函数:
function SetGroup( convert ) {
convert = convert || true;
....
})
convert的值总是设置为true。以以下所有方式调用SetGroup()将导致convert==true:
SetGroup();
SetGroup(true);
SetGroup(false);
我有另一个参数,我设置了这样的默认值,它可以工作,但它也是一个字符串。我怀疑上面的问题是因为参数是布尔值?
我如何使这一点适用于布尔参数?
variable = variable || true
语法依赖于JS意义上的第一个参数"false"。这意味着在布尔表达式中计算为false的variable
的任何值都将被值true
覆盖。
正如您所提到的,当定义的值不是自然的"false"(例如,使用字符串或非零整数)时,这种方法非常有效。然而,这对布尔型不起作用。正如你所猜测的,false
实际上是"虚假的"。
根据定义,如果左边的操作数为false,则布尔OR运算符||
返回右边的操作数。因此,如果左操作数始终是布尔值,而右操作数始终为true
,则它将始终返回true。
相反,试试这个:
function setGroup( convert ) {
convert = (convert != false);
....
})
如果convert
是undefined
,那么它将是true
。同样,如果是true
。如果convert
是false
,则它仍然是false
。
相关文章:
- jQuery Datepicker从日期开始设置默认值
- 在KeystoneJS中为Types.Money设置默认值
- 如何为显示jquery滑块值的文本框设置默认值
- 在Bootstrap下拉菜单中设置默认值
- 如何为 jquery 自动完成框设置默认值
- 聚合物:如何为具有嵌套特性的图纸选项卡设置默认值
- 使用复杂对象上的删除为选择框手动设置默认值
- 在动态输入数据的下拉菜单中设置默认值
- 有什么方法可以在超级测试中设置默认值吗
- 挖空 + 选择2 -- 设置默认值
- ||运算符在 null 时不设置默认值
- 如何在 Select2 输入中设置默认值,并在 asp.net mvc 中标记
- 在链接回以前访问过的页面时设置默认值
- PHP 设置默认值以从 ajax 页面返回记录
- 在文档加载时使用 JQuery 在下拉字段中设置默认值
- 如何为 Google 放置 API 自动完成文本框设置默认值
- 为具有未定义值的嵌套对象设置默认值的最简单方法
- AngularJS更新ng-model的值以设置默认值
- 剑道 UI 组合框 - 设置默认值
- JQuery 日期选取器设置默认值