from:http://hanxin830311.javaeye.com/blog/181127
1。根据作用范围不同,变量有全局变量和局部变量两种。在函数里定义的变量为局部变量,局部变量只在函数内有效。 如果局部变量和全局变量用相同的变量名,则局部变量将覆盖全局变量
<script> //定义全局变量test var test = "全局变量"; function checkscope( ) { var test = "局部变量"; alert(test); } checkscope( ); //在函数里定义的变量为局部变量,局部变量只在函数内有效。 //如果局部变量和全局变量用相同的变量名,则局部变量将覆盖全局变量 </script>
2。JavaScript语言没有块范围。
<script> function test(o) { //定义变量i,变量i的作用范围是整个函数 var i = 0; if (typeof o == "object") { //定义变量j,变量j的作用范围是整个函数内,而不是if块内。 var j = 5; for(var k = 0; k < 10; k++) { //k的作用范围是整个函数内,而不是循环体内 document.write(k); } } //即使出了循环体,k的值依然存在 alert(k + "\n" + j); } test(document); </script>
因为JavaScript语言没有块范围,有时会出现一些非常奇怪的结果:
<script> var scope = "全局变量"; function test() { alert(scope); var scope = "局部变量"; alert(scope); } test(); //代码第一次输出的scope值并不是"全局变量",而是undefined。知识这是因为scope在test函数中已经被重新定义了,局部变量在test函数中将全局有效,即在scope还没定义之前全局变量scope依然被覆盖。 </script>
变量作用范围在进行HTML事件处理时一样有效:
<script type="text/javascript"> var x = "全局变量"; </script> <form action="#" method="get"> <input type="button" value="局部变量" onclick="var x = '局部变量'; alert('输出x局部变量的值:' + x);" /> <input type="button" value="全局变量 " onclick="alert('输出x全局变量的值: ' + x);" /> </form>
一位牛人归纳的JavaScript语言基础知识点图示。1.JavaScript数据类型2.JavaScript变量3.Javascript运算符4.JavaScript数组5.JavaScript流程控制6.JavaScript函数基础7.…
1.局部和全局作用域php中在function体中定义的变量为局部变量,在function外定义的变量叫做全局变量<?php$x=5;//全局变量functionmyTest(){$y=10;//局部变量echo"<p>测…
首先看一个例子:varname='laruence';functionecho(){alert(name);varname='eve';alert(name);alert(age);}echo();运行结果是什么呢?上面的问题,我相信会有很…
isset函数是检测变量是否设置。格式:boolisset(mixedvar[,mixedvar[,...]])返回值:若变量不存在则返回FALSE若变量存在且其值为NULL,也返回FALSE若变量存在且值不为NULL,则返回TURE同…
1、JavaScript的作用域链2、函数体内部,局部变量的优先级比同名的全局变量高。3、JavaScript没有块级作用域。4、函数中声明的变量在整个函数中都有定义。5、未使用var关键字定义的变量都是全局变量。6、全局变量都是windo…
标题写的有点难理解问题是functionObj(){this.id=123;this.ele=document.getElementById('big_map_a');this.attachEvents();}Obj.prototype={…
avaScript没有块级作用域的概念。这意味着在块语句中定义的变量,实际上是在包含函数中而非语句中创建的,来看下面的例子:functionoutputNumbers(count){for(vari=0;i<count;i++){al…
变量作用域和函数作用域都涉及到变量值的变化,本文旨在让大家明白他们之间的区别变量的作用域:变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。varn=999;functio…