javascript - 无法理解这个 Javascript 语法
问题描述
我从这个链接得到以下片段:https ://www.gkogan.co/blog/save-url-parameters/
<script>
var queryForm = function(settings){
var reset = settings && settings.reset ? settings.reset : false;
var self = window.location.toString();
var querystring = self.split("?");
if (querystring.length > 1) {
var pairs = querystring[1].split("&");
for (i in pairs) {
var keyval = pairs[i].split("=");
if (reset || sessionStorage.getItem(keyval[0]) === null) {
sessionStorage.setItem(keyval[0], decodeURIComponent(keyval[1]));
}
}
}
var hiddenFields = document.querySelectorAll("input[type=hidden], input[type=text]");
for (var i=0; i<hiddenFields.length; i++) {
var param = sessionStorage.getItem(hiddenFields[i].name);
if (param) document.getElementsByName(hiddenFields[i].name)[0].value = param;
}
}
setTimeout(function(){queryForm();}, 3000);
</script>
简而言之,这段代码是为了获取像utm_source这样的链接参数,并保存到sessionStorage。我不明白的是教程没有解释的以下行:
var reset = settings && settings.reset ? settings.reset : false;
这个语法是什么意思?
解决方案
它使用三元运算符进行空合并。基本上,它分配任何重置(如果存在)或布尔值 false。
这里有更多三元运算符: 冒号“:”和问号“?”是什么意思?运营商呢?
推荐阅读
- python - 无法通过 python 使用 selenium 在 gcloud 注册表单上选择选项?
- mapbox - Mapbox --> 有没有办法优化超过 12 个站点的路线?
- python - 将复杂的 4d 数组从 Python 移动到 C++ 的有效方法
- git - 将 GitHub 中的默认分支名称从 main 全局更改为 master
- spring - 如何将服务与另一个服务的实例自动连接
- python - 如何计算python中每个项目的唯一子项目?
- python - python的discord经济Bot,当我尝试运行我的代码时,它显示`AttributeError:模块'discord.ext.commands'没有属性'Bot'`
- angular - Angular - 点击事件中的 ActivatedRoute
- algorithm - 将产品分发到盒子的算法
- sql - 删除sql中的重复记录