JavaScript声明全局变量三种方式的异同
2020-02-16 17:55
344 查看
JavaScript中声明变量很简单var(关键字)+变量名(标识符)。
方式1
需注意的是该句不能包含在function内,否则是局部变量。这是第一种方式声明全局变量。
方式2
没有使用var,直接给标识符test赋值,这样会隐式的声明了全局变量test。即使该语句是在一个function内,当该function被执行后test变成了全局变量。
方式3
这种方式经常被用到一个匿名函数执行后将一些函数公开到全局。 如JQuery1.5中最末一句
如果只是使用变量test,那么三种方式将没有什么区别。比如:alert(test) 都将显示5。但三种方式在某些情况下还是有区别的。分别按以上三种方式声明三个变量a1,a2,a3。
1,for in window
IE6/7/8/9:只弹出了a3,说明通过第一,二种方式声明的全局变量通过for in window时将获取不到。
Firefox/Chrome/Safari/Opera :a1,a2,a3都弹出了,说明三种方式声明的全局变量,通过for in window时都能获取到。
2,delete
结果如下
可以看到,
1,delete a2所有浏览器都是false。即通过var声明的变量无法删除,所有浏览器表现一致。这在犀牛书上也有提到。
2,通过window.a3方式声明的全局变量在IE6/7/8中均无法删除,IE9/Firefox/Chrome/Safari/Opera中却可以。
虽然有以上两点不同,但当用in运算时,都返回true。
用with打开对象window闭包时,所有浏览器也表现一致,如下
转载于:https://www.cnblogs.com/webpush/p/4968730.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- javascript 获取URL各个部分的功能
- 简单的选项卡(html + css + js)
- JS使图片在图片框中自适应,按比例缩放
- JS简易拖拽效果
- Js中 关于top、clientTop、scrollTop、offsetTop的用法
- js日期的常用操作
- JS实现以日历形式显示当前时间
- 完整显示当前日期和时间的JS代码(2007年2月25日星期日正午12:42:48)
- JS左侧菜单-04
- JS关闭当前页面的方法
- C#代码和javascript函数相互调用
- JavaScript学习笔记
- java C# javascript css 资源共享
- jsp页面使用jstl表示时,注意事项
- servlet到jsp页面出现乱码,原因
- XStream完美转换XML、JSON
- JavaScriptCore.framework基本用法(一)
- JavaScriptCore.framework基本用法(二)
- (NSScanner的使用)替换服务器获取的JSON数据中的换行符(JSON是不能解析带有换行符字符串)...
- JavaScript - 垃圾回收机制GC - 小四@王云飞