javascript - [,null]是什么用法
问题描述
看到用下面的函数来取得url的值。
function getURLParameter(name) {
return decodeURI(
(RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}
但是不知道[,null]在这里是什么表达方式。
这个函数的作用是想取得URI中某个参数的值,如网址http://www.xxx.com/index.html?key=hello&value=world*
,此时的location.search
等于?key=hello&value=world
。比如要获取key
的值("hello"),调用getURLParameter("key")
就行。
exec的语法如下:
如果匹配,则返回结果是一个数组,数组的第一个元素是匹配的子串,后面的元素则依次是捕获型括号的内容,由正则表达式可见,我们需要的结果是第一个捕获型括号的内容,是数组的第二个元素,所以使用了[1]
;
举例来说,假设网址还是上面的网址,我们调用getURLParameter("key")
,匹配的结果是["key=hello&", "hello", "&"]
,"key=hello&"
是匹配的子串,"hello"
是第一个捕获型括号的内容,"&"
是第二个捕获型括号的内容。["key=hello&", "hello", "&"] || [,null]
的结果当然是前一项,也就是["key=hello&", "hello", "&"]
, 然后取[1]
,整个函数的返回值就是"hello"
。
但是,如果我们调用getURLParameter("time")
,匹配失败,所以结果是null,此时如果你调用[1]
就会报错。[,null]
表示[undefined, null]
,当匹配失败的时候,就变成了null || [undefined, null]
这个结果是[undefined, null]
,此时再[1]
就不会报错了,此时整个函数返回的是null
。
调用完getURLParameter
函数以后,可以通过判断返回值是否是null,如果是null,则说明URL中没有这个参数;不为null,则返回值就是需要的参数值。
这篇关于javascript - [,null]是什么用法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!