javascript - Apakah kegunaan [,null]
过去多啦不再A梦
过去多啦不再A梦 2017-06-26 10:58:11
0
4
1068

Lihat bahawa fungsi berikut digunakan untuk mendapatkan nilai url.

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

Tetapi saya tidak tahu apakah ungkapan [,null] di sini.

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

membalas semua(4)
刘奇

Tujuan fungsi ini adalah untuk mendapatkan nilai parameter tertentu dalam URI, seperti URL http://www.xxx.com/index.html?key=hello&value=world*,此时的location.search等于?key=hello&value=world。比如要获取key的值("hello"),调用getURLParameter("key").

Sintaks exec adalah seperti berikut:

Jika ia sepadan, hasil pulangan ialah tatasusunan elemen pertama tatasusunan ialah subrentetan yang dipadankan, dan elemen seterusnya ialah kandungan kurungan penangkapan Seperti yang dapat dilihat daripada ungkapan biasa, hasil yang kita perlukan ialah th Kandungan kurungan penangkapan ialah elemen kedua tatasusunan, jadi [1];

digunakan

Sebagai contoh, dengan mengandaikan URL masih URL di atas, kami memanggil getURLParameter("key") dan hasil yang sepadan ialah ["key=hello&", "hello", "& "] , "key=hello&" ialah subrentetan yang dipadankan, "hello" ialah kandungan kurungan tangkapan pertama, "&" ialah kandungan kurungan penangkapan kedua. ["key=hello&", "hello", "&"] || Hasil daripada [,null] sudah tentu item sebelumnya, iaitu ["key=hello&", "hello ", "&"], dan kemudian ambil getURLParameter("key"),匹配的结果是["key=hello&", "hello", "&"]"key=hello&"是匹配的子串,"hello"是第一个捕获型括号的内容,"&"是第二个捕获型括号的内容。["key=hello&", "hello", "&"] || [,null]的结果当然是前一项,也就是["key=hello&", "hello", "&"], 然后取[1],整个函数的返回值就是"hello", nilai pulangan keseluruhan fungsi ialah "hello".

Walau bagaimanapun, jika kami memanggil getURLParameter("masa"), pemadanan gagal, jadi hasilnya adalah batal Pada masa ini, jika anda memanggil getURLParameter("time"),匹配失败,所以结果是null,此时如果你调用[1]就会报错。[,null]表示[undefined, null],当匹配失败的时候,就变成了null || [undefined, null]这个结果是[undefined, null],此时再[1]就不会报错了,此时整个函数返回的是null, ralat akan dilaporkan. [,null] bermaksud [undefined, null] Apabila perlawanan gagal, ia menjadi null || [undefined, null] Keputusan ini [undefined, null] Pada masa ini, tiada ralat akan dilaporkan Pada masa ini, keseluruhan fungsi mengembalikan null.

Selepas memanggil fungsi getURLParameter, anda boleh menilai sama ada nilai pulangan adalah batal, ini bermakna tiada parameter sedemikian dalam URL jika ia bukan nol, nilai pulangan adalah nilai parameter yang diperlukan.

代言

Pendekatan malas,
(nama + '=' + '(.+?)(&|$)').exec(location.search)jika perlawanan berjaya. Hasilnya tidak akan batal. (.+?) ialah nilai padanan biasa [1]. Jika perlawanan gagal, exec mengembalikan null. (name + '=' + '(.+?)(&|$)').exec(location.search)如果匹配成功。结果不会null。(.+?)就是正则匹配的值[1]。而如果匹配失败,exec返回null。
[,null]第一个值为undefined,这个操作只是统一了返回值为null,关键还是最后面的[1]导致的
如果后面的是[0],那[,null]可以改写为[null][,null]Nilai pertama adalah undefined Operasi ini hanya menyatukan nilai pulangan kepada null Kuncinya ialah [1] Disebabkan oleh

Jika yang berikut ialah [0], maka [,null] boleh ditulis semula sebagai [null]🎜
阿神

[,null][1] Bukankah batal? Jika yang sebelumnya tidak dipadankan, null akan dikembalikan

扔个三星炸死你

Ia bersamaan dengan ini

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

Tetapi jika nilai parameter tidak diperolehi dalam bahagian sebelumnya (RegExp(nama + '=' + '(.+?)(&|$)').exec(location.search) ), ralat akan dilaporkan jika [1] diambil secara langsung. Jadi menambah [,null] pada penghujungnya adalah bersamaan dengan [undefined, null], dan mengambil [1] pada penghujungnya boleh memastikan bahawa ralat luar sempadan tatasusunan tidak akan berlaku kerana parameter url tidak boleh diperolehi

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan