Kivinza cha juu cha JavaScript
- Kwanza Majukwaa ya stili ya JS
- Pya Mafano ya kosa ya JS
请避免全局变量、new
、===
、eval()
始终声明局部变量
所有在函数中使用的变量应该被声明为局部变量。
局部变量必须通过 var 关键词来声明,否则它们将变成全局变量。
严格模式不允许未声明的变量。
inasajiliwa kwenye juu
Habari ya kusoma bora inaonekana kusajiliwa kila maonyesho kwenye juu ya kila scripti au fungu
Faidi ya hii ni:
- inaendelea kufikia kwa kumekadiri programu
- inajifunza kufikia nafasi ya kila mwingiliano
- inaendelea kuwahifadhi maonyesho jumuuija yanaonesha kusikitisha
- kumichoka ujaribio wa kurekodia maonyesho ya kila mara
// inasajiliwa kwenye juu var firstName, lastName, price, discount, fullPrice; // baada ya kutumika firstName = "Bill"; lastName = "Gates"; price = 19.90; discount = 0.10; fullPrice = price * 100 / discount;
inaweza kutumiwa kama jina la jumuija:
// inasajiliwa kwenye juu var i; // baada ya kutumika for (i = 0; i < 5; i++) {
Chakula, JavaScript inasifia kufikia kila maonyesho kwa kuelekea juu (JavaScript hoisting).
kuanzai zhangli
Kufungua kina chaguo kina wakati ukiandika kina ni habari gani.
Faidi ya hii ni:
- Kina kina kina kinachotumika kina
- Kufungua kina kina kwa eneo lake pekee
- Kutumia thamani ya huzuni
// Inafikia kuanzia kufungua na kufungua kina var firstName = "", lastName = "", price = 0, discount = 0, fullPrice = 0, myArray = [], myObject = {};
Kufungua kina chaguo kina tunaweza kuelewa matumizi ya muhimu na aina ya data ya muhimu.
Hujisikia kufungua thamani, maandiko au ukweli kama kina
Wakati wote tukieleze kwamba thamani, maandiko au ukweli ni thamani ya kina, na si kina.
Kama hizi aina za maelezo zilikuwa kina, zizatengeneza ukweli wa kina kwa kina, na zizatoa matatizo ya kina:
Mifano
var x = "Bill"; var y = new String("Bill"); (x === y) // Matokeo ni false, kwa sababu x ni maandiko, na y ni kina.
au bila kina:
Mifano
var x = new String("Bill"); var y = new String("Bill"); (x == y) // Matokeo ni false, kwa sababu huna mpangilio wa kina wa kina.
Hujisikia new Object()
- Tumia {} kuhusu new Object()
- Tumia "" kuhusu new String()
- Tumia 0 kuhusu new Number()
- Tumia false kuhusu new Boolean()
- Tumia [] kuhusu new Array()
- Tumia /()/ kuhusu new RegExp()
- Tumia function (){} kuhusu new Function()
Mifano
var x1 = {}; // Mwongozo mpya wa kina var x2 = ""; // Mavara mpya ya maandiko ya kina var x3 = 0; // Mavara mpya ya thamani ya kina var x4 = false; // Mavara mpya ya ukweli wa kina var x5 = []; // Mwongozo mpya wa kipakaa var x6 = /()/; // Mwongozo mpya wa kirekana kwa uharibifu var x7 = function(){}; // Mwongozo mpya wa kifaa cha programu
Kuelewa kuhusiana na uharibifu wa aina ya data
Tukieleza kwamba thamani zinaendelea kuwa kama maandiko au NaN
(Hakuna Namba).
JavaScript inayopata kipata kina. Mavara inayoweza kuwa na aina ya data mbalimbali, na mavara inaweza kubadilika aina yake ya data:
Mifano
var x = "Hello"; // typeof x ni string x = 5; // Badilisha typeof x kuwa namba
Kama ni kwa kugawaza mafunzo, JavaScript inaweza kubadilisha thamani za namba kuwa string:
Mifano
var x = 5 + 7; // x.valueOf() ni 12, typeof x ni namba var x = 5 + "7"; // x.valueOf() ni 57, typeof x ni string var x = "5" + 7; // x.valueOf() ni 57, typeof x ni string var x = 5 - 7; // x.valueOf() ni -2, typeof x ni namba var x = 5 - "7"; // x.valueOf() ni -2, typeof x ni namba var x = "5" - 7; // x.valueOf() ni -2, typeof x ni namba var x = 5 - "x"; // x.valueOf() ni NaN, typeof x ni namba
Kugawaza string kwa string haikupoteza kosa wala kuwa na thamani: NaN
(Hakuna Namba):
Mifano
"Hello" - "Dolly" // Inaruhusu NaN
Tumia === kwa kugawaza
==
taarifu za kugawaza zinaenda kufanyia ujumbe wa aina kabla ya kugawaza (kwa sababu ya uenezi wa aina).
===
taarifu za kugawaza inakufaa kugawaza thamani na aina:
Mifano
0 == ""; // true 1 == "1"; // true 1 == true; // true 0 === ""; // false 1 === "1"; // false 1 === true; // false
kwa thamani za kawaida
inafichukia kama hujafichukia parameter kama ni kwa kufanya kikao cha programu, thamani ya parameter ya kifichukia hiyo itakapopaswa kwa thamani undefined
.
undefined
inafichukia izingatizo zaidi kwa programu. Kuweka thamani za kawaida kwa thamani zote ni tabia nzuri.
Mifano
function myFunction(x, y) { inafichukia (y === undefined) { y = 0; } }
Inafaa kusomaKiparamiteri cha kifunguoInafaa kusoma mawasiliano ya maelezo ya kifunguo cha kiparamiteri.
Tumia default kumaliza switch
Tumia default
kutoka kwa kumaliza switch
Inayotumiwa kama inahitajika, na inaweza kumekadiri.
Mifano
switch (new Date().getDay()) { case 0: day = "Sunday"; kufungua; case 1: day = "Monday"; kufungua; case 2: day = "Tuesday"; kufungua; case 3: day = "Wednesday"; kufungua; case 4: day = "Thursday"; kufungua; case 5: day = "Friday"; kufungua; case 6: day = "Saturday"; kufungua; default: day = "Unknown"; }
Usiwasaidia eval()
eval()
Mfano inatumiwa kusaidia kusafiri matukio kama kosa. Kwa kawaida, hii inahitajika.
Kwa sababu inaruhusiwa kusafiri kwa kosa yoyote, hii pia inamaanisha masuala ya ukumbi.
- Kwanza Majukwaa ya stili ya JS
- Pya Mafano ya kosa ya JS