(转载)http://blog.163.com/xuxiaoqianhz@126/blog/static/165190577201061594421870/

JavaScript中定义变量有两种方式:

1 使用var关键字定义变量,如“var bookSum;”

该种方式可以定义全局变量也可以定义局部变量,这取决于定义变量的位置。

在函数体中使用 var关键字定义的变量为局部变量;在函数体外使用var关键字定义的变量为全局变量。

2 不使用var关键字,而是直接通过赋值的方式定义变量,如“bookSum=100;”

使用该方式定义的变量为全局变量,与位置无关。

如:

<script type="text/javascript" language="javascript">

function myFunction() {

var myValue = "这是一个局部变量";

document.write("这是在函数体内输出的文字:", myValue);

}

myFunction();

//如果使用以下语句将会出错

//document.write(myValue);

</script>

<script type="text/javascript" language="javascript">

function myFunction() {

var myValue = "这是一个全局变量";

document.write("这是在函数体内输出的文字:", myValue);

}

myFunction();

document.write(myValue);//可以在函数体外引用变量

</script>

注意事项:

1 变量必须先定义后使用

2 允许为未定义的变量赋值,在给未定义的变量赋值时,JavaScript会自动定义该变量,并且该变量会作为全局变量出现在JavaScript代码中。

3 允许重复定义变量,每次定义变量的语句都是有效语句。

如:

<script type="text/javascript" language="javascript">

var myVariable = 1;

document.write(myVariable + 100, "<br>");

var myVariable = "这是一个字符串";

document.write(myVariable, "<br>");

var myVariable = true;

if (myVariable) {

document.write("变量myVariable是一个布尔类型的变量");

}

</script>

4 可以在程序的任何一个位置声明变量,该变量会在整个有效作用范围内起效,而不是从定义变量的那一行代码开始起效。

<script type="text/javascript" language="javascript">

var myCount = 1;

function myFun() {

document.write(myCount, "<br>");

//该行语句输出为undefined,而不是1,因为在函数体内定义了局部变量myCount,局部变量的优先级高于全局变量,因此,此处的myCount是局部变量,而不是全局变量

var myCount = 100;

//该行语句输出100。在JavaScript中虽然可以一处定义变量随处生效,但是变量的赋值必须从赋值语句开始生效。

document.write(myCount, "<br>");

}

myFun();

</script>

5 虽然在JavaScript中的变量没有语句块的限制,但是由函数的限制,只要是在当前函数体中定义的局部变量,都不能在其他函数体重使用。

<script type="text/javascript" language="javascript">

function myFun() {

for (i = 1; i < 5; i++) {

var k = 10;

document.write("i=1", i, "<br>");

document.write("k=", k, "<br>");

//在for语句中定义的变量k,可以在for语句块中使用

}

document.write("k=", k, "<br>");

//也可以在for语句块之外使用

}

myFun();

//不能在函数体外使用,下面语句会报错

//document.write("k=", k, "<br>");

</script>

最新文章

  1. LaTex表格内单元格内容强制换行
  2. CodeSmith7代码生成器针对PostgreSQL数据库无法使用的Bug修复全过程
  3. 使用ShareSDK一键分享
  4. 14个Xcode中常用的快捷键操作(转)
  5. Mininet建立topology zoo中的拓扑
  6. SQL SERVER中查询无主键的SQL
  7. SVN遇到的几个错误问题解决办法
  8. Jzzhu and Cities
  9. CSU - 1356 Catch(dfs染色两种写法,和hdu4751比较)
  10. ajax提交整个form表单
  11. Codeforces Round #331 (Div. 2) _A. Wilbur and Swimming Pool
  12. ZeroC Ice IceBox使用
  13. 编码与Python的基础
  14. webpack4打包nodejs项目进阶版——多页应用模板
  15. 用Python优雅的处理日志
  16. Studying GIT
  17. SQL Server 连接远程服务器
  18. [原]Openstack之identity server(keystone)
  19. 安卓开发 Activity入门
  20. CSS的overflow属性介绍

热门文章

  1. 8个开发必备的PHP功能(转)
  2. html》meta标签笔记
  3. Less小记
  4. Android Capability 细粒度的权限控制
  5. 如何在win7上面安装python的包
  6. POJ 2049 Finding Nemo bfs 建图很难。。
  7. Colletion View 简单的备忘
  8. 学习Swift -- 构造器(中)
  9. objective-C: nonatomic retain copy assgin 等属性详解
  10. C++中Reference与指针(Pointer)的使用对比