javascript - 是否应该在 JavaScript 中验证参数类型?

标签 javascript

这应该是一个简单的问题。

我使用 JavaScript 已经有几年了,而强类型语言(例如 Java 和 C++)的使用时间甚至更长。我记得了解到,在强类型语言中,在使用参数之前必须检查参数类型是糟糕代码的症状。但是,这是否也适用于 JavaScript 等语言?

/* 例如,在客户端 JavaScript 中,我发现自己会自动执行如下操作:

function myFunction(array1, array2)
{
    if (array1 !== Array.from(array1)) return null;
    if (array2 !== Array.from(array2)) return null;
    // some array action here with arrays array1,array2
}

*/

最佳答案

是的,在使用之前,您可以取 Array.isArray用于检查变量是否是数组。

The Array.isArray() function determines whether the passed value is an Array.

如果数据来自未知来源,例如使用图书馆, vendor 事先不知道用户提供的数据类型,则有必要检查类型。

一些库对数据使用混合模式,其中数据可以是单个项目或项目数组。在这种情况下,需要进行检查以确定该项目是否必须包装在数组中。

function myFunction(array1, array2) {
    if (!Array.isArray(array1)) return null;
    if (!Array.isArray(array2)) return null;
    // some array action here with arrays array1,array2
}

关于javascript - 是否应该在 JavaScript 中验证参数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46382228/

相关文章:

javascript - 火灾事件最多每 x 秒一次

javascript - React Native AppLoading - 如何保持在加载屏幕上直到本地 JSON 文件完全导入?

javascript - 在javascript中使用 '\'声明字符串占用多行

javascript - 无法使用 SonarQube 分析 Javascript 文件

javascript - 每 10 秒刷新一次 Jquery Mobile ListView

javascript - Promise 返回错误值

javascript - 使用 FabricJS 将图案添加到 png 图像(在 Canvas 中)

javascript - toDataURL() 文件大小增加

javascript - 如何删除 Backbone Marionette 模块?

javascript - 正则表达式检查单词和单词长度