javascript - 总结许多连续 if(x typeof !=='unedfined') 查询的最佳方法?
问题描述
我用 JavaScript 和 Selenium 编写测试脚本,我想查询,如果给出了可选参数,如果是,那么使用它们,如果没有,跳过它们。
/*optional parameter are: day, month, year, comment*/
if( typeof day !== 'undefined') {
entryField.sendKeys(day);
}
if( typeof year!== 'undefined') {
entryField.sendKeys(year);
}
if( typeof month!== 'undefined') {
entryField.sendKeys(month);
}
if( typeof comment !== 'undefined') {
entryField.sendKeys(comment);
}
那看起来非常难看。有更好的方法吗?参数是从外面给的,所以如果我不做这个typeof-Query,就会出现引用错误,因为它们没有定义。
解决方案
我认为,棘手的部分是变量day
等可能在这部分代码之前甚至不存在。因此,为避免出现错误,一种可能的方法是使用eval
,如下所示:
var para = ["day", "year", "month", "comment"];
for(let p of para) {
if(eval("typeof "+p) !== 'undefined') {
entryField.sendKeys(eval(p));
}
}
推荐阅读
- javascript - chart.scrollablePlotArea 意外行为
- vue.js - vue - 与其他锚多次使用相同的网址
- arduino - 希望两个限制之间的数字具有相等的时间间隔
- excel - 自定义 SUMPRODUCT()
- python - Django:打印查询集时出错
- python - 如何像 FFMPEG 一样在 Python 中从音频文件创建频谱图?
- php - 在laravel 7中将提交表单传递给控制器
- read-the-docs - 托管本地 RTD 服务器时出现“主机未知,无法阅读文档”
- encoding - Jsoup 解析不可读的字符
- javascript - 是否有可以比较两个 json 文件并将比较结果生成为 html 的 java/JS 库?