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 相关文章推荐
js 上传图片预览问题
Dec 06 Javascript
jquery插件制作简单示例说明
Feb 03 Javascript
document.createElement()用法
Mar 13 Javascript
处理及遍历XML文档DOM元素属性及方法整理
Aug 23 Javascript
JavaScript对内存分配及管理机制详细解析
Nov 11 Javascript
从数据库读取数据后将其输出成html标签的三种方法
Oct 13 Javascript
AngularJS基础 ng-show 指令简单示例
Aug 03 Javascript
浅谈Angularjs link和compile的使用区别
Oct 21 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
Nov 20 Javascript
利用原生的JavaScript实现简单拼图游戏
Nov 18 Javascript
Node.js如何对SQLite的async/await封装详解
Feb 14 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
Apr 26 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
第十一节 重载 [11]
2006/10/09 PHP
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
Python及Django框架生成二维码的方法分析
2018/01/31 Python
python构建深度神经网络(续)
2018/03/10 Python
Python3.4解释器用法简单示例
2019/03/22 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
六一儿童节活动策划方案
2014/01/27 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
初中信息技术教学计划
2015/01/22 职场文书
合同纠纷调解书
2015/05/20 职场文书
朝花夕拾读书笔记
2015/06/29 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书