2016-03-21 13 views

cevap

3

Bu kod kısa bir şeklidir,

this.time = this.time || Data.now(); 
Var x = this.time; 

Ama gibi diğer yönleriyle kodlama bu şekilde kullanırken dikkatli olmak zorunda,

var a = b = 10; 

burada Çünkü Yukarıdaki durum b global bir değişken olacaktır.

+0

yapar var yerel bir değişken olarak bir kalış süresi:

Sen JavaScript böyle basit, tek tek bir değere sahip birden fazla değişkene ilan edebilir? –

+0

@KevinLiang Evet tabi ki. –

0

Değerlendirme sağdan sola doğru yapılır. Sağ

soldan

yüzden this.time || Data.now() sonra this.time kendisi aksi this.time eşittir this.time tanımlanırsa Yani atılan adımların

olan bu değerlendirilen bir mantıksal OR açıklamada şöyle

ilk değerlendirilir geçerli saate eşittir.

son kısmı böyle bir değişken atama kullanıldığında

0

yukarıda açıklandığı gibi ayarlanır ne this.time eşit olacaktır değişken x ilan edilir, varsayılan değer mekanizması olarak || operatör davranır. ifadesi temelde söylüyor:

"this.time için x alan this.time başlatılmadı sürece, o Date.now() kullanın". çok daha fazla ayrıntı için

, || operatör üzerinde Addy Osmani adlı makalesine bakın: değerin https://addyosmani.com/blog/exploring-javascripts-logical-or-operator/

0

Bu ilişkilendirme sola sağdan oluşur. Sonunda this.time At

Var x = this.time = this.time || Date.now(); 

Date.now() eğer this.time undefined olduğunu alırlar. Ve Var x, this.time değerini alır; Eg

var name_a = 'Maria'; 
var name_b = 'Mario'; 
console.log(name_a);//Maria 
console.log(name_b);//Mario 

name_b = name_a = 'Paul'; 
console.log(name_a);//Paul 
console.log(name_b);//Paul 

Mozzila Reference of Variables Assignment

İlgili konular