javaScript中使用var和不是用var定义变量的区别
来源:互联网 发布:绝地求生优化设置 编辑:程序博客网 时间:2024/05/16 19:36
javaScript与java、c语言虽然有很多相同,但是也存在区别
JavaScript的变量没有块范围
(1)看下面的例子
<script type="text/javascript"> //定义全局变量 var scope="全集变量"; function test(){ //全局变量被局部变量覆盖 document.writeln(scope+"<br/>") //定义scope局部变量,起作用范围是整个函数 var scope="局部变量"; //再次输出scope值 document.writeln(scope); } test();</script>
运行结果:
(2)去掉test()中的var
<script type="text/javascript"> //定义全局变量 var scope="全集变量"; function test(){ //全局变量被局部变量覆盖 document.writeln(scope+"<br/>") //定义scope局部变量,起作用范围是整个函数 scope="局部变量"; //再次输出scope值 document.writeln(scope); } test();</script>
运行结果:
(3)原因分析
主要是定义变量用var和不用var确实存在差异:
①如果使用var变量,那么程序会强制定义一个新变量
②如果没有使用var定义变量,系统会优先在当前上下文中搜索是否存在该变量,只有在该变量不存在的前提下,系统才会重新定义一个新变量
上面之所以从 undefined变成“全局变量”,是因为定义局部变量的代码处不是定义新变量,而是直接建全局变量scope赋值。因此test()并没有覆盖全局变量scope,故也就输出“全局变量”
0 0
- javaScript中使用var和不是用var定义变量的区别
- JavaScript中let和var定义变量的区别
- JavaScript中定义变量加var和不加var的区别
- javascript中的var定义的变量和没有var定义变量的区别
- javascript中定义变量var,const,let简单的区别
- javascript中使用var定义变量的预编译效果
- javascript定义变量时,有var和没有var的区别
- JavaScript定义变量是加var和不加var的区别
- javascript定义变量时有var和没有var的区别探讨
- js中let和var定义变量的区别
- js中let和var定义变量的区别
- js中let和var定义变量的区别
- js中let和var定义变量的区别
- js中let和var定义变量的区别
- let和var定义变量的区别
- let和var定义变量的区别
- [js点滴]使用var定义变量和不使用var的本质区别
- js中定义变量加var和不加var的区别
- 自定义控件其实很简单 七
- androidStudio中,修改版本号需要注意的地方
- 中英词类活用
- org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be res
- Go学习
- javaScript中使用var和不是用var定义变量的区别
- MySQL命令行窗口快捷键
- 自定义控件其实很简单 八
- 基于ANT+通讯协议软件开发环境搭建
- 读取Excel得到Datatable
- java设计模式之观察者模式
- 把图片保存到数据库中和从数据库中读取图片
- override 和 overload 的区别
- 测试+设计+产品