javascript - Pengenalan pembolehubah, tanda petikan, serta isu penggunaan tanda
PHPz
PHPz 2017-05-18 10:59:41
0
4
611

Ada sesuatu yang saya tidak begitu faham Kali ini saya melihat sekeping kod yang menerangkan masalah dengan baik:

function moveElement (elementID, final_x, final_y, interval) {
    var elem = document.getElementById(elementID);
    var xpos = parseInt(elem.style.left);
    var ypos = parseInt(elem.style.top);
    ......
    var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";
    movement = setTimeout(repeat, interval)
}

Saya hanya ada satu soalan:

var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";

Dalam perenggan ini, elementID,final_x,final_y,intervalempat parameter dimasukkan. Kecuali yang pertama iaitu rentetan, tiga yang terakhir ialah semua nombor.

Perkara pertama yang saya tidak faham ialah mengapa parameter ini perlu disertakan dalam sebut harga Perkara kedua yang saya tidak faham ialah apa yang tanda tambah lakukan di sini. Soalan lain ialah mengapa rentetan ini seperti elementID disertakan dalam petikan berganda Dalam keadaan apakah ini perlu?

Secara amnya, saya rasa tanda tambah sesuai untuk penyambungan rentetan, tetapi ini jelas tidak berlaku di sini Sepasang tanda petikan adalah ruang bebas Apakah maksud tanda tambah yang dibalut di dalamnya?

PHPz
PHPz

学习是最好的投资!

membalas semua(4)
洪涛

1. Petikan disertakan dalam koma
2.123456+"somestring"→"123456somestring"
3.elementId ialah parameter jenis String, jadi tambahkan petikan

滿天的星座

Pembolehubah akhirnya ditukar kepada rentetan! Nombor + tanda petikan menukar aksara Jika parameter yang anda perlukan ialah rentetan dan bukannya nombor

漂亮男人

Rentetan di sini adalah bersamaan dengan penggunaan eval dalam setTimeout, yang merujuk kepada rentetan kod yang anda mahu laksanakan selepas kelewatan milisaat

世界只因有你

Pertama sekali, tanda tambah di sini memang digunakan untuk penyambungan tali

var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";
Hasil

ialah

var repeat = "moveElement(elementID, final_x, final_y, interval)"

Hanya lulus pembolehubah rentetan bernama ulang sebagai parameter kepada setTimeout, iaitu, selepas selang milisaat, ulangan akan dilaksanakan

var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";
movement = setTimeout(repeat, interval)

Ini sebenarnya pada asasnya sama dengan

movement = setTimeout(function () {
    moveElement(elementID, final_x, final_y, interval)
}, interval)

Sepatutnya ini lebih mudah difahami, bukan?

Walau bagaimanapun, masih terdapat perbezaan antara kedua-dua kaedah ini Secara amnya, kaedah yang disebut oleh penyoal tidak disyorkan untuk butiran, lihat window.setTimeout, Running string sebagai fungsi dalam javascript setTimeout?

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