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 相关文章推荐
iframe窗口高度自适应的实现方法
Jan 08 Javascript
node.js中的fs.futimesSync方法使用说明
Dec 17 Javascript
javascript工厂方式定义对象
Dec 26 Javascript
jQuery实现返回顶部效果的方法
May 29 Javascript
javascript原生ajax写法分享
Apr 10 Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 Javascript
两种js监听滚轮事件的实现方法
May 13 Javascript
JavaScript中日期函数的相关操作知识
Aug 03 Javascript
Bootstrap表单控件学习使用
Mar 07 Javascript
在 Angular 中实现搜索关键字高亮示例
Mar 21 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
Mar 24 jQuery
纯js实现的积木(div层)拖动功能示例
Jul 19 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 中的str_replace 函数总结
2007/04/27 PHP
PHP目录函数实现创建、读取目录教程实例
2011/01/13 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
php返回json数据函数实例
2014/10/09 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
Jquery 常用方法经典总结
2010/01/28 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
js和jquery设置disabled属性为true使按钮失效
2014/08/07 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
Bootstrap实现的表格合并单元格示例
2018/02/06 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
python实现贪吃蛇小游戏
2020/03/21 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
Python列表如何更新值
2020/05/27 Python
python 获取字典键值对的实现
2020/11/12 Python
html5定位并在百度地图上显示的示例
2014/04/27 HTML / CSS
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
销售人员个人求职信
2013/09/26 职场文书
电大本科自我鉴定
2014/02/05 职场文书
公司活动总结怎么写
2014/06/25 职场文书
聚会通知怎么写
2015/04/23 职场文书
2015年加油站工作总结
2015/05/13 职场文书
硕士论文致谢范文
2015/05/14 职场文书
婚宴父母致辞
2015/07/27 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
MySQL RC事务隔离的实现
2022/03/31 MySQL