DEV Community

NikiMunger
NikiMunger

Posted on

js传参、typeof

js传参

在 JavaScript 里,函数参数默认就是可选的,不传 = undefined,函数作者必须自己判断要不要用它


typeof

if (typeof onComplete === 'function') onComplete();
Enter fullscreen mode Exit fullscreen mode

因为 onComplete 可能是:

  • 没传(undefined)
  • 传了 null
  • 传了一个字符串、数字、对象……
  • 也可能传了一个真正的 函数

如果直接写:

onComplete();
Enter fullscreen mode Exit fullscreen mode

但 onComplete 不是函数,就会报错:

TypeError: onComplete is not a function
Enter fullscreen mode Exit fullscreen mode

所以先检查它是不是函数:

typeof onComplete === 'function'
Enter fullscreen mode Exit fullscreen mode

只有在值为 "function" 时才调用。

typeof 的结果

typeof 返回值
函数 "function"
数字 "number"
字符串 "string"
对象(含数组) "object"
null "object"(历史遗留)
undefined "undefined"

Top comments (0)