JS變量之賦值1


<script> function show(){ var a=b=c=d=5; } show(); alert(a);//彈a時報錯(not defined),而b、c、d都能彈出5 </script>


<script> function show(){ var a=5,b=6,c=7; } show(); alert(c);//彈出a、b、c全都報錯 </script>



  1. 為什么在函數一中,只有變量a被聲明?
    因為賦值是從右向左結合:
    var a=b=c=d=5; 等價於 var a=(b=(c=(d=5)));,其中只有a被聲明了,b,c和d都是自動解析為全局變量了。

  2. 為什么在函數二中,變量a、b、c都都被聲明了?語法就這樣規定的:

概述變量聲明語句,聲明一個變量並且可以同時初始化該變量。

語法
var varname1 [= value1 [, varname2 [, varname3 ... [, varnameN]]]];
varnameN 變量名。變量名可以定義為任何合法標識符。 valueN 變量的初始化值。該值可以為任何合法表達式。

描述
變量聲明無論出現在代碼的任何位置,都會在任何代碼執行之前處理。使用var語句聲明的變量的作用域是當前執行>位置的上下文:一個函數的內部(聲明在函數內)或者全局(聲明在函數外)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM