您的位置:首页 > Web前端 > JavaScript

js var变量具体含义和用法

2016-03-07 17:07 495 查看
经验研究发现 JavaScript 的 var 关键字貌似是用来声明局部变量的。



下例子声明了2个局部变量

<script language="javascript">

<!--

var str = "Hello";

function change() {

var str = "say";

}

change();

document.write(str);

-->

</script>

change()函数里 str 变量的值改变不会影响函数外的 str 变量。例子输出:Hello



下面声明了一个全局变量和一个局部变量

<script language="javascript">

<!--

str = "Hello";

function change() {

var str = "say";

}

change();

document.write(str);

-->

</script>

函数里 str 的改变不会影响到函数外的 str 变量,应为它是局部的。例子输出:Hello



下面2个例子

<script language="javascript">

<!--

var str = "Hello";

function change() {

str = "say";

}

change();

document.write(str);

-->

</script>

<script language="javascript">

<!--

str = "Hello";

function change() {

str = "say";

}

change();

document.write(str);

-->

</script>

虽然第一个例子函数外的 str 变量声明为局部的但是在函数里仍然能改变它的值。全局变量的作用域是什么?在一个 .js 文件里?一个 HTML 文件里?还是别的?两个例子都输出:say

var 不一定是用来定义局部变量的

jscript的全局变量和局部变量的分界是这样的

过程体(包括方法function,对象Object o ={})外的所有变量不管你有没有加var保留字,他都是全局变量

而在过程体内(包括方法function(){},对象Object o={})内的对象加var保留字则为局部变量,而不加var保留字即为全局变量

js的全局作用域应该是在看着办的的范围内,不一定是同一个页面,比如说在一个iframe里就不可以调用嵌入他的页面的JS

个人总结:var在过程体function和object v={}内部的var只属于该过程体,也就是只要var在过程体内就只听过程体一个人的命令,过程体外面的干我甚事,他影响不了我,我也影响不了他

举个例子来说明:过程体外边就好像一个国家,

过程体内部就好像一个家庭,

1).如果过程体内部有var

国家开奥运会是他自己的事,他开他的奥运会,我在家里睡我的觉,互相不影响;

2).如果过程体内部没有var

国家开奥运会要你家里面出个人作为志愿者,这时候你就受到国家的影响,同时你也影响了国家
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: