boş bayt rahatsız gerekmez düşünüyorum saklanır, sadece çoğu dize taşıma işlevi dizenin 0 sonu dikkate alır. Bazı işlevler için bir string uzunluk argümanını geçmelisiniz, ancak en önemlisi boş baytı bulana kadar okunur. Bellekte dize aslında "Hello \ 0World \ 0" dır.
Bir JavaScript motoru, boş bir bayt aratarak dize uzunluğunu belirleyemez, çünkü böyle bir durumda bir dizenin içinde boş bir satır bulunamaz. Bu özelliklerde muhtemelen bir şey var. Motor bunun yerine dizginin uzunluğunu ayrı ayrı depolamalıdır ve daha sonra dizgeye eriştiğinizde o kadar çok karakteri bellekten okumalıdır.
Ve arabelleklerin boyutunu düzgün bir şekilde ayrıştırıp depolamak, genellikle kullanıcılardan gizlemeye çalışan betik dilleridir. Bu, komut dosyasının amacının yarısıdır, programcının, oluşturulmuş karakter arabelleklerine 0
eklenmesini veya dizge uzunluğunu ayrı ayrı saklamak için endişelenmesini gerektirmeyecek şekilde, dizge işleme işlevleri, boş dizininiz dışında bir grup rasgele karakter basmaz.
Tam olarak bir JavaScript dizesi nasıl davranır? Bilmiyorum, muhtemelen özelliklerini ayrıntılı olarak tanımlamak için motora kalmış. Belirtim gibi bir nesne ile aradığınız sürece, arabellek ve uzunluk için yapıları kullanarak, 0 için bir çeviri karakteri kullanarak, bağlantılı bir karakter listesi, vb. Kullanarak, herhangi bir şekilde uygulanabilir ...
I Javascript'in C. olmadığını düşünün, böylece bir dizedeki boş bayt yalnızca bir dizgede boş bir bayttır. –
Çoğu dil, dizeleri tamsayı uzunluğuna (bu nedenle boş karaktere izin vererek) temsil eden Pascal geleneğini izler. C aslında bu anlamda garip olanıdır. – hugomg