javascript - À quoi sert [,null]
过去多啦不再A梦
过去多啦不再A梦 2017-06-26 10:58:11
0
4
1031

Voyez que la fonction suivante est utilisée pour obtenir la valeur de l'url.

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

Mais je ne sais pas quelle expression [,null] est ici.

过去多啦不再A梦
过去多啦不再A梦

répondre à tous(4)
刘奇

Le but de cette fonction est d'obtenir la valeur d'un certain paramètre dans l'URI, comme l'URL http://www.xxx.com/index.html?key=hello&value=world*,此时的location.search等于?key=hello&value=world。比如要获取key的值("hello"),调用getURLParameter("key").

La syntaxe de exec est la suivante :

S'il correspond, le résultat renvoyé est un tableau. Le premier élément du tableau est la sous-chaîne correspondante, et les éléments suivants sont le contenu des parenthèses de capture, comme le montre l'expression régulière, le résultat dont nous avons besoin. est le ème Le contenu d'un support de capture est le deuxième élément du tableau, donc [1];

est utilisé

Par exemple, en supposant que l'URL est toujours l'URL ci-dessus, nous appelons getURLParameter("key"), et le résultat correspondant est ["key=hello&", "hello", "& "] , "key=hello&" est la sous-chaîne correspondante, "hello" est le contenu du premier crochet de capture, "&" est le contenu de la deuxième parenthèse de capture. ["key=hello&", "hello", "&"] || Le résultat de [,null] est bien sûr l'élément précédent, qui est ["key=hello&", "hello ", "&"], puis prenez getURLParameter("key"),匹配的结果是["key=hello&", "hello", "&"]"key=hello&"是匹配的子串,"hello"是第一个捕获型括号的内容,"&"是第二个捕获型括号的内容。["key=hello&", "hello", "&"] || [,null]的结果当然是前一项,也就是["key=hello&", "hello", "&"], 然后取[1],整个函数的返回值就是"hello", la valeur de retour de la fonction entière est "hello".

Cependant, si nous appelons getURLParameter("time"), la correspondance échoue, donc le résultat est nul. À ce moment, si vous appelez getURLParameter("time"),匹配失败,所以结果是null,此时如果你调用[1]就会报错。[,null]表示[undefined, null],当匹配失败的时候,就变成了null || [undefined, null]这个结果是[undefined, null],此时再[1]就不会报错了,此时整个函数返回的是null, une erreur sera signalée. [,null] signifie [non défini, null] Lorsque la correspondance échoue, elle devient null || [non défini, null]. [undefined, null] À ce stade, aucune erreur ne sera signalée. À ce stade, la fonction entière renvoie null.

Après avoir appelé la fonction getURLParameter, vous pouvez juger si la valeur de retour est nulle. Si elle est nulle, cela signifie qu'il n'y a pas de paramètre de ce type dans l'URL ; si elle n'est pas nulle, la valeur de retour est la valeur du paramètre requis.

代言

Approche paresseuse,
(name + '=' + '(.+?)(&|$)').exec(location.search)si la correspondance est réussie. Le résultat ne sera pas nul. (.+?) est la valeur correspondante normale [1]. Si la correspondance échoue, exec renvoie null. (name + '=' + '(.+?)(&|$)').exec(location.search)如果匹配成功。结果不会null。(.+?)就是正则匹配的值[1]。而如果匹配失败,exec返回null。
[,null]第一个值为undefined,这个操作只是统一了返回值为null,关键还是最后面的[1]导致的
如果后面的是[0],那[,null]可以改写为[null][,null]La première valeur est undefined Cette opération unifie uniquement la valeur de retour à null La clé est la dernière [1]. Causes

Si ce qui suit est [0], alors [,null] peut être réécrit comme [null]🎜
阿神

[,null][1] N'est-il pas nul ? Si le précédent ne correspond pas, null sera renvoyé

扔个三星炸死你

C'est équivalent à ça

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

Mais si la valeur du paramètre n'est pas obtenue dans la section précédente (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) ), une erreur sera signalée si [1] est pris directement. Donc, ajouter [,null] à la fin équivaut à [undefined, null], et prendre [1] à la fin peut garantir que les erreurs hors limites du tableau ne se produiront pas en raison des paramètres d'URL. ne peut pas être obtenu

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!