mozilla

比较版本

变量

更改版本

修订版 276564:

由 alzhu 在 进行的修订 276564

修订版 223394:

由 alzhu 在 进行的修订 223394

标题:
变量
变量
网址缩略名:
Core_JavaScript_1.5_Guide/变量
Core_JavaScript_1.5_Guide/变量
内容:

修订版 276564
修订版 223394
t7    <h3 id=".E5.8F.98.E9.87.8F" name=".E5.8F.98.E9.87.8F">t
8      变量
9    </h3>
10    <p>
11      在应用程序中使用变量作为值的符号名。变量名又叫做“标识符”,要符合一定规则。
12    </p>
13    <p>
14      一个JavaScript标识符必须以字母、下划线(_)或者美元符号($)作为首字符。随后的字符也可以是数字。因为Jav
>aScript大小写敏感,所以字母包含“A”到“Z”(大写)和“a”到“z”(小写)。 
15    </p>
16    <p>
17      从JavaScript 1.5开始,你可以在标识符中使用ISO 8859-1或者Unicode字母,比如“å”和“ü”
>。你也可以在标识符中使用<a href="cn/Core_JavaScript_1.5_Guide/Unicode#Unicode 
>_Escape_Sequences">转义序列</a>页面的\uXXXX Unicode转义序列。 
18    </p>
19    <p>
20      合格的标识符如<code>Number_hits</code>、<code>temp99</code>和<code>_
>name</code>。 
21    </p>
22    <h4 id=".E5.AE.9A.E4.B9.89.E5.8F.98.E9.87.8F" name=".E5.AE.9A
>.E4.B9.89.E5.8F.98.E9.87.8F"> 
23      定义变量
24    </h4>
25    <p>
26      你可以使用两种方式来定义变量:
27    </p>
28    <ul>
29      <li>使用关键字 <a href="cn/Core_JavaScript_1.5_Reference/Stateme
>nts/var">var</a>。例如, <code>var x = 42</code>。 这个语法可以用来声明<a href=" 
>#Variable_Scope">局部和全局</a>变量。 
30      </li>
31      <li>对变量进行简单赋值。 例如, <code>x = 42</code>。 这常常用来声明<a href="#Gl
>obal_Variables">全局变量</a>,并生成一个严格的JavaScript警告。 你不应该使用形式。 
32      </li>
33    </ul>
34    <h4 id=".E5.8F.98.E9.87.8F.E6.B1.82.E5.80.BC" name=".E5.8F.98
>.E9.87.8F.E6.B1.82.E5.80.BC"> 
35      变量求值
36    </h4>
37    <p>
38      一个用var声明的,没有初始值的变量的值是<a href="/cn/Core_JavaScript_1.5_Refer
>ence/Global_Properties/undefined" title="cn/Core_JavaScript_1.5_R 
>eference/Global_Properties/undefined">未定义</a>。 
39    </p>
40    <p>
41      访问一个未声明的变量,将导致引用错误的异常被抛出(ReferenceError exception)。例如:
42    </p>
43    <pre class="eval">
44var a;
45print("The value of a is " + a); // 输出“The value of a is undefine
>d” 
46print("The value of b is " + b); // 抛出ReferenceError异常
47</pre>
48    <p>
49      你可以使用<code>undefined</code>去检测一个变量是否有值。下面的代码中,变量<code>input
></code>没有被赋值,<code><a href="/cn/Core_JavaScript_1.5_Reference/Sta 
>tements/if...else" title="cn/Core_JavaScript_1.5_Reference/Statem 
>ents/if...else">if</a></code>语句求得的值是<code>true</code>。 
50    </p>
51    <pre class="eval">
52var input;
53if(input === undefined){
54  doThis();
55} else {
56  doThat();
57}
58</pre>
59    <p>
60      <span class="comment">Not sure how the following is related
> to "Variables" section</span> 作为布尔内容时,<code>undefined</code>的值是< 
>code>false</code>。例如,下面的代码会执行<code>myFunction</code>,因为<code>myAr 
>ray</code>的元素未定义的。 
61    </p>
62    <pre class="eval">
63var myArray = new Array();
64if (!myArray[0]) myFunction();
65</pre>
66    <p>
67      当你对null变量求值时,对于数值内容它是0,布尔内容它是false。例如:
68    </p>
69    <pre class="eval">
70var n = null;
71print(n * 32); // 输出0
72</pre>
73    <h4 id=".E5.8F.98.E9.87.8F.E4.BD.9C.E7.94.A8.E5.9F.9F" name="
>.E5.8F.98.E9.87.8F.E4.BD.9C.E7.94.A8.E5.9F.9F"> 
74      变量作用域
75    </h4>
76    <p>
77      当你在函数的外面声明变量时,该变量叫“全局”变量,因为他在当前文件的其他代码中都可使用。当你在一个函数内部声明变量时,
>他叫“局部”变量,因为他只在这个函数中可用。 
78    </p>
79    <p>
80      JavaScript没有<a href="/cn/Core_JavaScript_1.5_Guide/Block_St
>atement#Block_Statement" title="cn/Core_JavaScript_1.5_Guide/Bloc 
>k_Statement#Block_Statement">块语句</a>作用域;就是说,块中定义的变量也可以在块外面使用。例如,下 
>面代码,即使<code>condition</code>为<code>false</code>也不会抛出异常,而是输出5: 
81    </p>
82    <pre class="eval">
83if (condition) {
84  var x = 5;
85}
86print(x ? x : 0);
87</pre>
88    <p>
89      关于JavaScript的变量,另一个不寻常的地方是,你可以使用在后面定义的变量,而不会发生异常。例如:
90    </p>
91    <pre class="eval">
92print(x === undefined); // 输出“true”
93var x = 3;
94</pre>
95    <h4 id=".E5.85.A8.E5.B1.80.E5.8F.98.E9.87.8F" name=".E5.85.A8
>.E5.B1.80.E5.8F.98.E9.87.8F"> 
96      全局变量
97    </h4>
98    <p>
99      <span class="comment">need links to pages discussing scope 
>chains and the global object</span> 全局变量实际上是“全局对象”的属性。在网页中,全局对象是< 
>a href="cn/DOM/window">window</a>,所以你可以通过使用<code>window.<i>variab 
>le</i></code>来访问全局变量。 
100    </p>
101    <p>
102      因此,你可以从一个window或frame中通过window或frame名来访问在另外一个window或frame中定
>义的全局变量。例如,在<code>FRAMESET</code>文档中定义了一个变量<code>phoneNumber</code 
>>,你可以通过<code>parent.phoneNumber</code>,从他的子frame中访问它。 
103    </p>
104    <h4 id="See_Also" name="See_Also">
105      See Also
106    </h4>
107    <p>
108      <a href="cn/Sharp_variables_in_JavaScript">Sharp variables 
>in JavaScript</a> 
109    </p>
110    <p>
111      {{ PreviousNext("Core_JavaScript_1.5_Guide:Values", "Core_J
>avaScript_1.5_Guide:常量") }} 
112    </p>
113    <div class="noinclude"></div>{{ languages( { "en": "en/Core_J
>avaScript_1.5_Guide/Variables", "es": "es/Gu\u00eda_JavaScript_1. 
>5/Variables", "fr": "fr/Guide_JavaScript_1.5/Variables", "ja": "j 
>a/Core_JavaScript_1.5_Guide/Variables", "ko": "ko/Core_JavaScript 
>_1.5_Guide/Variables", "pl": "pl/Przewodnik_po_j\u0119zyku_JavaSc 
>ript_1.5/Zmienne" } ) }} 

返回历史