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实例教程(19) 使用HoTMetal(7)
Dec 23 Javascript
JavaScript入门教程(9) Document文档对象
Jan 31 Javascript
javascript 写类方式之四
Jul 05 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
javascript框架设计读书笔记之种子模块
Dec 02 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
Sep 24 Javascript
ReactJs快速入门教程(精华版)
Nov 28 Javascript
ES6新特性之变量和字符串用法示例
Apr 01 Javascript
JavaScript实现的超简单计算器功能示例
Dec 23 Javascript
Javascript防止图片拉伸的自适应处理方法
Dec 26 Javascript
webpack+react+antd脚手架优化的方法
Apr 02 Javascript
使用vuex的state状态对象的5种方式
Apr 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读MYSQL中文乱码的解决方法
2006/12/17 PHP
php字符串截取的简单方法
2013/07/04 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
Javascript之文件操作
2007/03/07 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
浅谈js之字面量、对象字面量的访问、关键字in的用法
2016/11/20 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
详解webpack 入门与解析
2018/04/09 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
详解python中的 is 操作符
2017/12/26 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
python的常见矩阵运算(小结)
2019/08/07 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
python_mask_array的用法
2020/02/18 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
Python图像读写方法对比
2020/11/16 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
Python读写Excel表格的方法
2021/03/02 Python
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
新东网科技Java笔试题
2012/07/13 面试题
给水排水工程专业毕业生推荐信
2013/10/28 职场文书
最热门的自我评价
2013/12/30 职场文书
参观接待方案
2014/03/17 职场文书
监察建议书格式
2014/05/19 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
python多线程方法详解
2022/01/18 Python
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL