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 相关文章推荐
JavaScript.Encode手动解码技巧
Jul 14 Javascript
JS获取几种URL地址的方法小结
Feb 26 Javascript
Node.js中的事件驱动编程详解
Aug 16 Javascript
基于jquery和svg实现超炫酷的动画特效
Dec 09 Javascript
js实现功能比较全面的全选和多选
Mar 02 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
Mar 29 Javascript
实例解析Vue.js下载方式及基本概念
May 11 Javascript
关于TypeScript模块导入的那些事
Jun 12 Javascript
react native 文字轮播的实现示例
Jul 27 Javascript
详解React 服务端渲染方案完美的解决方案
Dec 14 Javascript
vue 微信扫码登录(自定义样式)
Jan 06 Javascript
微信小程序实现抖音播放效果的实例代码
Apr 11 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错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
Javascript window对象详解
2014/11/12 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
javascript中 try catch用法
2015/08/16 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
用jquery快速解决IE输入框不能输入的问题
2016/10/04 Javascript
JS常见算法详解
2017/02/28 Javascript
js编写选项卡效果
2017/05/23 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
基于jQuery实现挂号平台首页源码
2020/01/06 jQuery
Python多线程实例教程
2014/09/06 Python
Python中使用ElementTree解析XML示例
2015/06/02 Python
Python应用库大全总结
2018/05/30 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
俄罗斯最大的灯具网站:Fandeco
2020/03/14 全球购物
餐饮部总监岗位职责范文
2014/02/13 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
推普周国旗下讲话稿
2014/09/21 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
Python WSGI 规范简介
2021/04/11 Python
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
python基础之函数的定义和调用
2021/10/24 Python
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技
CSS中理解层叠性及权重如何分配
2022/12/24 HTML / CSS