javascript - Javascript:确定参数是否传递给函数
问题描述
等待! 在您投反对票和/或将其标记为重复之前,请阅读:
关于确定参数(参数、变量等)是否传递给函数(包括this和this ),我已经查看了很多关于 SO 的答案。
但是,一致的答案是以一种或另一种方式检查未定义的。但这不一定准确。如果传递的参数本身未定义怎么办?
基本上我希望区分:
var a = [1,2][2] // where this will result in undefined
myFunction(a);
对比
myFunction(); // where no variable whatsoever is passsed.
答案可能很简单,这是不可能的,应该在发送函数之前捕获未定义的变量,但希望有另一种方法。
这是一个JSFiddle,我试图在上面的两个场景中查看之前的建议是否有所不同 - 没有运气。
如果这确实是一个重复的问题,请指出我正确的方向。
解决方案
您可以做的是遍历arguments
并some
检查传递的任何值是否是虚假的(、undefined
、null
、NaN
或0
):""
false
function myFunction() {
if (arguments.some(e => !e)) {
console.log("Falsy value passed");
} else {
//Rest of function goes here
}
}
推荐阅读
- embedded-video - 让网页访问者放大嵌入 YouTube 视频的最佳方式是什么?
- php - 从 PHP 中的 SQL 数据库中获取表的数据
- ios - 不能改变 UISearchBar 的颜色?
- django - 每天从 00:00 到 02:00 执行的 Django celery 任务
- firebase - chrome 扩展中的 Firebase 配置
- c# - 在 C# 中完全改造应用程序的 UI 后,现有按钮及其功能停止工作
- c++ - 一半一半输出
- python - python中树中最长的路径
- go - 如何从 gin gonic 中的 POST 有效负载中读取变量?
- javascript - 使用jQuery查找选择选项时间输入字段的总和