2015-02-16 12 views
5

varsayalım Aşağıdaki fonksiyon imzaya sahip: Ben çağırdığınızdaJavascript, tanımsız bir değere sahip değişkenler için 32 bit bellek ayırıyor mu?

function test(varible1, varible2) {} 

Ben sadece bir parametre pass:

test(5); 

Yani test işlev içinde variable2 hala yaratılabilir ama undefined değerini sahip olacaktır. Ben js motoru hala bu değişken için bellekte 32 bit ayırır mı merak ediyorum?

+0

JS dizileri seyrekdir ve bir işlev çağrısının argüman dizisi bir çeşit dizidir. Muhtemelen değil. –

+0

Kesin olarak bilmek gerekirse, bir ECMAScript uygulamasının içsellerine aşina olan birisine ihtiyacınız olacaktır, çünkü öznenin kendisinde çok net olmadığı (ya da bunu kendi kendinize test etmeniz gerekecek). Söyleyebileceğim şey, önceden tanımlanmış olsun olmasın herhangi bir değerin "undefined" olamayacağıdır - bu yüzden benim tahminim hayır değil. –

+3

Hangi JS motoru var? Çok var. Bu, teknik özellik tarafından belirlenen bir şey değil, bir uygulama detayıdır. – Quentin

cevap

1

Ben tanımsız boyutunu bulamıyorum ve bunu motora göre değişir eminim, ama ben iyi vaka 32 bit olduğunu farz . Değişken vardır, bu yüzden tanımlanmamış olduğunu bile bilmek için bir değere ihtiyaç duyar. Bu değer büyük olasılıkla 32 veya 64 bit olacak bir işaretçi.

+0

İlk tahminim 32 sistemde 32, 64 sistemde 64 idi. Ancak AFAIK, değeri tanımlanmamış olsa bile, yer tahsis etmenin bir sebebi yoktur. – Ludwik

İlgili konular