JavaScript En İyi Uygulamaları
- Önceki Sayfa JS Tarz Rehberi
- Sonraki Sayfa JS Hataları
Genel değişkenlerden kaçının,new
,===
,eval()
Genel değişkenlerden kaçının
Mümkün olduğunca genel değişkenleri az kullanmaya çalışın.
Tüm veri türlerini, nesneleri ve fonksiyonları içerir.
Genel değişkenler ve fonksiyonlar diğer betikler tarafından üst üste gelebilir.
Yerel değişkeni kullanın ve nasıl kullanılacağını öğreninKapanış。
Her zaman yerel değişken olarak deklare edilmelidir
Fonksiyonda kullanılan tüm değişkenleryereldeğişken
yerel değişkenzorunludurtarafından var Deklare etmek için anahtar kelimeler kullanılmazsa,它们将变成全局变量。
Sıkı mod genel değişkenlerin olmamasını izin vermez.
Üstte deklare etme
İyi bir kodlama alışkanlığı, tüm deklareleri her bir betik veya fonksiyonun üstüne koymaktır.
Bu şekilde yapmanın avantajı şudur:
- Daha temiz kod elde edilir
- Yerel değişkenleri bulmak için iyi bir konum sağlar
- Gerekli olmayan genel değişkenlerden kaçınmayı kolaylaştırır
- Gerekli olmayan yeniden deklare etme olasılığını azaltır
// Üstte deklare edilebilir var firstName, lastName, price, discount, fullPrice; // Daha sonra kullanılacak firstName = "Bill"; lastName = "Gates"; price = 19.90; discount = 0.10; fullPrice = price * 100 / discount;
Döngü değişkenleri için de kullanılabilir:
// Üstte deklare edilebilir var i; // Daha sonra kullanılacak for (i = 0; i < 5; i++) {
Varsayılan olarak, JavaScript tüm deklareleri en üstte taşıyacaktır (JavaScript yükseltme).
变量 başlatma
Değişkenleri tanımlarken initialization yapma alışkanlığı iyi bir alışkanlıktır.
Bu şekilde yapmanın avantajı şudur:
- Daha temiz kod
- Değişkenleri ayrı bir yerde initialization yapın
- Tanımlanmamış değerlerden kaçının
// Başlangıçta tanımlama ve initialization yapın var firstName = "", lastName = "", price = 0, discount = 0, fullPrice = 0, myArray = [], myObject = {};
Değişken initialization bize beklenen kullanım ve beklenen veri türünü anlamamıza yardımcı olur.
Sayı, string veya boolean nesneleri tanımlamayın
Her zaman sayıları, string veya boolean değerleri temel değerler olarak, nesneler olarak değil olarak düşünmelisiniz.
Bu türleri nesne olarak tanımlarsanız, çalışma hızını yavaşlatır ve hoş olmayan yan etkiler yaratır:
Cümle. Bunu gerekli gördüğünüzde.
var x = "Bill"; var y = new String("Bill"); (x === y) // Sonuç false, çünkü x string, y ise nesnedir.
veya hatta daha kötü:
Cümle. Bunu gerekli gördüğünüzde.
var x = new String("Bill"); var y = new String("Bill"); (x == y) // Sonuç false, çünkü nesneleri karşılaştıramazsınız.
new Object() kullanmayın
- new Object() yerine {} kullanın
- new String() yerine "" kullanın
- new Number() yerine 0 kullanın
- new Boolean() yerine false kullanın
- new Array() yerine [] kullanın
- /()/ kullanarak new RegExp() yerine
- function (){} kullanarak new Function() yerine
Cümle. Bunu gerekli gördüğünüzde.
var x1 = {}; // Yeni nesne var x2 = ""; // Yeni temel string değer var x3 = 0; // Yeni temel numarik değer var x4 = false; // Yeni temel boolean değer var x5 = []; // Yeni dizgi nesnesi var x6 = /()/; // Yeni düzenli ifade var x7 = function(){}; // Yeni fonksiyon nesnesi
Otomatik tür dönüşümünü fark etmelisiniz
Sayıların beklenmedik şekilde stringe dönüştüğünü fark etmelisiniz veya NaN
(Not a Number)。
JavaScript gevşe tür. Değişkenler farklı veri türlerini içerebilir ve değişkenler veri türlerini değiştirebilir:
Cümle. Bunu gerekli gördüğünüzde.
var x = "Hello"; // typeof x dizge x = 5; // typeof x'yi sayısal olarak değiştir
Matematiksel işlemler yapılırken, JavaScript sayısal değerleri dizgeye dönüştürebilir:
Cümle. Bunu gerekli gördüğünüzde.
var x = 5 + 7; // x.valueOf() 12, typeof x sayısal var x = 5 + "7"; // x.valueOf() 57, typeof x dizge var x = "5" + 7; // x.valueOf() 57, typeof x dizge var x = 5 - 7; // x.valueOf() -2, typeof x sayısal var x = 5 - "7"; // x.valueOf() -2, typeof x sayısal var x = "5" - 7; // x.valueOf() -2, typeof x sayısal var x = 5 - "x"; // x.valueOf() NaN, typeof x sayısal
Dizge ile dizge çıkarıldığında hata vermez, aksine şu şekilde döner: NaN
(Not a Number):
Cümle. Bunu gerekli gördüğünüzde.
"Hello" - "Dolly" // NaN döner
=== ile karşılaştırma kullanın
==
Karşılaştırma operatörleri, karşılamadan önce tür dönüşümü yapar (türleri eşleştirir).
===
İşlev operatörleri, değerleri ve türleri zorunlu olarak karşılaştırır:
Cümle. Bunu gerekli gördüğünüzde.
0 == ""; // true 1 == "1"; // true 1 == true; // true 0 === ""; // false 1 === "1"; // false 1 === true; // false
Parameter Defaults
Eğer bir fonksiyon çağrılırken bir parametre eksikse, bu eksik parametrenin değeri şu şekilde ayarlanır: undefined
。
undefined
Değer, kodunuzu bozabilir. Parametrelere varsayılan değerler ayarlamak alışkanlığı iyi bir şeydir.
Cümle. Bunu gerekli gördüğünüzde.
function myFunction(x, y) { if (y === undefined) { y = 0; } }
y = 0;LütfenFonksiyon Parametreleri
Bu bölümde fonksiyon parametreleri hakkında daha fazla bilgi edinin.
varsayılan ile switch sonunu doldurun kullanın
varsayılan sonunu doldurmak için
switch
Cümle. Bunu gerekli gördüğünüzde.
Örnek switch (new Date().getDay()) { davranış 0: kes: davranış 1: day = "Pazar"; kes: davranış 2: day = "Pazartesi"; kes: davranış 3: day = "Çarşamba"; kes: davranış 4: day = "Perşembe"; kes: davranış 5: day = "Cuma"; kes: davranış 6: day = "Cumartesi"; kes: varsayılan: day = "Bilinmiyor"; }
eval() kullanmaktan kaçının
eval()
Fonksiyon, metni kod olarak çalıştırmak için kullanılır. Çoğu durumda, bunu kullanmak gerekmez.
Herhangi bir kodun çalışmasına izin verdiğiniz için, bu aynı zamanda güvenlik sorunları anlamına da gelir.
- Önceki Sayfa JS Tarz Rehberi
- Sonraki Sayfa JS Hataları