JavaScript中var关键字的使用详解


Posted in Javascript onAugust 14, 2015

作用
声明作用;如声明个变量。
语法  

var c = 1;

省略var
在javascript中,若省略var关键字而直接赋值,那么这个变量为全局变量,哪怕是在function里定义的。

<script type="text/javascript"> 
  function Define() { 
    a = 2; 
  } 
  function Hello() { 
    alert(a); 
  } 
</script>

如代码所示,运行函数Define()后,变量a声明为全局变量。在Hello()函数中可以引用变量a。

更具体的示例
我们都知道 JavaScript 中的var关键字是用来申明变量的,但是如果不用这个关键字而直接写出变量名,然后赋值给它,JavaScript 也并不会报错,它会自动申明这个变量。难道说 JavaScript 中的var是个多余的东西吗?显然不是!

请看下面这段代码:

str1 = 'Hello JavaScript!';
function fun1() {
 str1 = 'Hello Java!';
}
fun1();
alert(str1);

// 弹出 Hello Java!

可以看到,在函数 fun1 被调用后,str1 的值在函数内被改变了。

再将上面的代码稍作修改:

str1 = 'Hello JavaScript!';
function fun1() {
 var str1 = 'Hello Java!';
}
fun1();
alert(str1);

// 弹出 Hello JavaScript!

看到没有,str1 的值并没有被函数 fun1 改变。

显然,var关键字影响了变量的作用域。

函数外部:变量不管是否用了var申明,都是全局变量。

函数内部:变量如果没有使用var关键字申明,那它就是全局变量,只有用var关键字申明了,才是局部变量。
结论

为了避免潜在的风险,务必使用var关键字来申明变量。

Javascript 相关文章推荐
父窗口获取弹出子窗口文本框的值
Jun 27 Javascript
来自chinaz的ajax获取评论代码
May 03 Javascript
javascript:void(0)的作用示例介绍
Oct 28 Javascript
jquery实现焦点图片随机切换效果的方法
Mar 12 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
Nov 09 Javascript
很实用的js选项卡切换效果
Aug 12 Javascript
js实现显示手机号码效果
Mar 09 Javascript
原生JS进行前后端同构
Apr 22 Javascript
vue初始化动画加载的实例
Sep 01 Javascript
vue基础之data存储数据及v-for循环用法示例
Mar 08 Javascript
layui的面包屑或者表单不显示的解决方法
Sep 05 Javascript
小程序实现可拖动的悬浮按钮
Sep 07 Javascript
JavaScript的jQuery库中ready方法的学习教程
Aug 14 #Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
Aug 14 #Javascript
JavaScript学习笔记之DOM基础 2.4
Aug 14 #Javascript
关于JavaScript的变量的数据类型的判断方法
Aug 14 #Javascript
js实现表单检测及表单提示的方法
Aug 14 #Javascript
JavaScript中的this关键字使用详解
Aug 14 #Javascript
JS实现双击编辑可修改状态的方法
Aug 14 #Javascript
You might like
如何正确理解PHP的错误信息
2006/10/09 PHP
通过文字传递创建的图形按钮
2006/10/09 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
为JavaScript添加重载函数的辅助方法
2010/07/04 Javascript
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
python3 反射的四种基本方法解析
2019/08/26 Python
python lambda表达式(匿名函数)写法解析
2019/09/16 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
阿拉伯世界最大的电子商务网站:Souq沙特阿拉伯
2016/10/28 全球购物
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
技校生自我鉴定
2013/12/08 职场文书
函授药学自我鉴定
2014/02/07 职场文书
兰兰过桥教学反思
2014/02/08 职场文书
毕业生个人求职自荐信
2014/02/26 职场文书
投标承诺书范本
2014/03/27 职场文书
个人股份转让协议书范本
2014/10/26 职场文书
致青春观后感
2015/06/09 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python