假设我有任何变量,定义如下:
var a = function() {/* Statements */};
Run Code Online (Sandbox Code Playgroud)
我想要一个函数来检查变量的类型是否像函数一样.即:
function foo(v) {if (v is function type?) {/* do something */}};
foo(a);
Run Code Online (Sandbox Code Playgroud)
如何以上面定义的方式检查变量a是否类型Function?
为可选参数分配默认值的好方法是什么?
我正在玩JavaScript中的可选参数,以及如果未指定参数则分配默认值的想法.我的方法接受两个参数,后者我认为是可选的,如果未指定则默认为false.我的方法看起来像这样......
// selects the item, appropriately updating any siblings
// item to select [, toggle on / off]
this.selectItem = function(item, toggle)
{
toggle = toggle && typeof toggle === 'boolean';
if (toggle)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
在此jsFiddle上运行一些测试后,使用以下主体进行默认值分配:
function checkParamIsBoolean(param)
{
param = param && typeof param === 'boolean';
}
checkParamIsBoolean('me'); // boolean
checkParamIsBoolean([]); // boolean
checkParamIsBoolean(true); // boolean
checkParamIsBoolean(false); // boolean
checkParamIsBoolean(1 == 1); // boolean
checkParamIsBoolean(1); // …Run Code Online (Sandbox Code Playgroud) 我有一个功能
function test(name)
{
}
Run Code Online (Sandbox Code Playgroud)
我叫它 test("kanishka");
在一种情况下,我想将两个参数(name和age)传递给此函数:
test("kanishka",27);
Run Code Online (Sandbox Code Playgroud)
在PHP中,我可以通过将默认值设置为age:
test(name , age = NULL)
Run Code Online (Sandbox Code Playgroud)
在JavaScript中有什么方法可以做到这一点吗?
我试过了
test(name , age = NULL)
Run Code Online (Sandbox Code Playgroud)
但它会给出错误.
我可以宣布2个功能
test(name) and test(name , age = NULL)
Run Code Online (Sandbox Code Playgroud)
但它重复了代码.
或者我可以更改我之前的函数调用,它将一个参数带到两个参数,给出一个默认值age:
test("kanishka" , 0)
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,我必须找到所有函数调用并更改它们.
javascript ×3