Mbinu Zangu Bora – JavaScript

1. Zima cache

Firefox:
Fungua Developer Tools -> Fungua Mipangilio (F1) -> "Disable HTTP Cache (when toolbox is open)"

Chrome:
Fungua Developer Tools -> Fungua Mipangilio (F1) -> "Disable cache (while DevTools is open)"

2. Acha konsoli ya JS ikiwa wazi

Katika DevTools, fungua kichupo cha Console na ukiache wazi, ili hatua ya 1 iendelee kufanya kazi na pia uone hitilafu za mtandao na za JS.

Inapendekezwa pia programu-jalizi hii, inayoonyesha hitilafu za JS kwa uwazi zaidi pale unaposahau mwenyewe:

3. JavaScript: kitabu cha lazima “You Don't Know JS”

4. Nukta-mkato

// you want to return 5 and have ugly formatting:
return
5

// JavaScript Interpretation:
return;
5;

5. Viendeshaji vya kimantiki && na ||

Hata semi (expressions) zinaweza kuunganishwa hivi, na kuwezesha kauli fupi kuliko zote ya if – sukari ya sintaksia:

Mara nyingi hutumika pia kwa thamani za chaguo-msingi:

6. Je, JavaScript ni pass-by-reference au pass-by-value?

Katika JavaScript jambo hili linavutia. Mfano:

function changeStuff(a, b, c) {
    a = a * 10;
    b.item = "changed";
    c = {item: "changed"};
}

var num = 10;
var obj1 = {item: "unchanged"};
var obj2 = {item: "unchanged"};

changeStuff(num, obj1, obj2);

console.log(num);
console.log(obj1.item);
console.log(obj2.item);

Hutoa matokeo yafuatayo:

10
changed
unchanged

Kama obj1 isingekuwa rejea hata kidogo, kubadilisha obj1.item kusingekuwa na athari yoyote kwa obj1 nje ya function.

Kama hoja ingekuwa rejea halisi, kila kitu kingebadilika: num ingekuwa 100, na obj2.item ingekuwa na “changed”. Badala yake, num inabaki 10 na obj2.item inabaki “unchanged”.

Kwa kweli, kipengele kinachopitishwa hupitishwa kwa thamani. Hata hivyo, kile kinachopitishwa kwa thamani chenyewe ni rejea. Kitaalamu hii huitwa call-by-sharing.

Kwa vitendo hii inamaanisha: ukibadilisha kigezo chenyewe (kama ilivyo kwa num na obj2), hilo halina athari kwa kitu asili kilichopitishwa kwenye function. Lakini ukibadilisha thamani za ndani za kigezo, mabadiliko hayo yanabaki (kama ilivyo kwa obj1).