亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

javascript - [,null]是什么用法

瀏覽:141日期:2023-05-13 14:25:55

問題描述

看到用下面的函數來取得url的值。

function getURLParameter(name) { return decodeURI((RegExp(name + ’=’ + ’(.+?)(&|$)’).exec(location.search)||[,null])[1] );}

但是不知道[,null]在這里是什么表達方式。

問題解答

回答1:

這個函數的作用是想取得URI中某個參數的值,如網址http://www.xxx.com/index.html?key=hello&value=world*,此時的location.search等于?key=hello&value=world。比如要獲取key的值('hello'),調用getURLParameter('key')就行。

exec的語法如下:

javascript - [,null]是什么用法

如果匹配,則返回結果是一個數組,數組的第一個元素是匹配的子串,后面的元素則依次是捕獲型括號的內容,由正則表達式可見,我們需要的結果是第一個捕獲型括號的內容,是數組的第二個元素,所以使用了[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,則返回值就是需要的參數值。

回答2:

偷懶的做法,(name + ’=’ + ’(.+?)(&|$)’).exec(location.search)如果匹配成功。結果不會null。(.+?)就是正則匹配的值[1]。而如果匹配失敗,exec返回null。[,null]第一個值為undefined,這個操作只是統一了返回值為null,關鍵還是最后面的[1]導致的如果后面的是[0],那[,null]可以改寫為[null]

回答3:

[,null][1]不就是null了嗎,前面的匹配不到就返回null

回答4:

相當于這樣吧

return decodeURI( ( RegExp(name + ’=’ + ’(.+?)(&|$)’).exec(location.search) )[1] || null);

但是前面( RegExp(name + ’=’ + ’(.+?)(&|$)’).exec(location.search) )這一段如果沒有獲取到參數值,直接取[1]會報錯,所以在后面加[,null],相當于[undefined, null],在最后取[1],可以確保不會因為獲取不到url參數而發生數組越界錯誤

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 国产成人精品免费视频大全五级 | 欧美日韩顶级毛片www免费看 | 成年人三级网站 | 手机毛片免费看 | 日本加勒比高清一本大道 | 久久精品国内偷自一区 | 国产在线精品一区二区三区不卡 | 成人毛片免费视频播放 | 91久久精品国产一区二区 | 最新久久免费视频 | 亚洲精品一区专区 | 日本一区二区三区四区无限 | 免费观看性欧美大片无片 | 久久亚洲成人 | 亚洲成人免费视频 | 亚洲一区二区三区影院 | 国产女人成人精品视频 | 美女超爽久久久久网站 | 国产一级片播放 | 亚洲成a人v在线观看 | 亚洲三级视频在线观看 | 亚洲欧美第一 | 日韩国产欧美一区二区三区 | 欧美日韩视频精品一区二区 | 在线观看国产欧美 | 天堂视频免费看 | 欧美aaaaa| 黄色网址在线免费观看 | 久久99精品久久久久久久野外 | 亚洲精品91| 日本天堂网址 | 久久精品视频在线播放 | 日韩午夜在线视频 | 日本在线观看www免费 | 国产大片在线观看 | 欧美成人3d动漫专区 | 欧美一级在线观看播放 | 欧美黄成人免费网站大全 | 亚洲撸 | 中文字幕精品一区二区绿巨人 | 国产成人在线免费观看 |