JavaScript中var的重要性
来源:互联网 发布:加入不了淘宝客 编辑:程序博客网 时间:2024/05/15 02:02
在JS中申明变量是使用var来进行申明,但是有的时候我们没有使用var也可以。这是为什么呢?我来给大家细细的说来。
- var的本质
var的本质就是来申明变量的
<script>var str = 'China';//申明并进行赋值</script>
变量的作用范围
先以一个例子来说明引出问题,在这个例子中,在函数t中没有使用var关键字来申明变量,系统认为只是进行赋值操作而已,而且这个赋值操作会影响到了window对象的str2属性
<script>var str1 = 'China';//申明并赋值str1var str2 = 'Japan';//申明并赋值str2console.log(window.str1,window.str2);//输出:China Japanfunction t(){ var str1 = 'local';//申明并赋值str1 str2 = 'global';//赋值操作,并不是申明变量,污染window对象的属性}t();//调用t函数console.log(window.str1,window.str2);//输出:China global</script>
- 变量的作用域
全局作用域:在最外层定义的变量
局部作用域:在函数内部定义的变量
JS作用域的特点:首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层,即window对象,并操作window对象的属性。
<script>var str = 'China';function t1(){ var str = 'Japan'; function t2(){ var str = 'USA'; console.log(str); } t2();}t1();</script>
这个例子比较典型,可以来说明JS变量的作用域切换问题,脚本首先在最外层定义了str属性,当调用t1函数时,在t1函数中也定义了str变量和t2方法,当执行t2方法时,此时又定义了str变量,所以此时打印USA。
当屏蔽t2函数中的定义操作,此时在t2函数作用域中没有str变量,则从它的上一级作用域中查找,又因为t1函数中定义了str变量,此时打印Japan。
当屏蔽t1和t2函数中的定义操作,则一层一层地往外找,此时找到最外层,此时打印China。
当最外层也没有定义该变量,在运行该JS过程中就找不到该变量,此时会出错,在浏览器的控制台可以找到错误。
0 0
- JavaScript中var的重要性
- WEB前端开发学习----7.JavaScript 中 var 的重要性
- javascript var 重要性
- javascript中var的使用
- javascript中var的作用
- Javascript中var引发的问题
- JavaScript的ES6中var、let、const
- JavaScript中const, var, let的区别
- javaScript中var、let、const的区别
- javascript脚本的重要性
- javascript的重要性
- javascript的重要性
- javascript基础知识的重要性
- javascript的var使用
- JavaScript : var的意义
- 10 var重要性
- JavaScript中定义变量加var和不加var的区别
- JavaScript中变量声明有var和没var的区别
- 从零开始OpenGLES之旅--shading language
- #include <vector>
- spring框架结构
- iOS获取系统相册中的图片
- 聚类小练习1
- JavaScript中var的重要性
- 51nod-最大子段和问题
- 可视化日历程序----Date时间类 Calendar日历类的应用
- css 文本图标对齐与定位二三事
- 使用 gooreplacer 解决 stackoverflow 网站缓慢问题
- 旅行 (Standard IO)
- hibernate+spring报错
- hibernate基础篇
- java面向对象基础 练习 +答案