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 相关文章推荐
改变文件域的样式实现思路同时兼容ie、firefox
Oct 23 Javascript
javascript数组操作总结和属性、方法介绍
Apr 05 Javascript
JS判断是否360安全浏览器极速内核的方法
Jan 29 Javascript
跟我学习javascript的prototype使用注意事项
Nov 17 Javascript
AngularJS 日期格式化详解
Dec 23 Javascript
几种经典排序算法的JS实现方法
Mar 25 Javascript
jQuery中的deferred使用方法
Mar 27 jQuery
浅谈Node.js轻量级Web框架Express4.x使用指南
May 03 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
Jul 10 Javascript
详解项目升级到vue-cli3的正确姿势
Jan 28 Javascript
AjaxFileUpload.js实现异步上传文件功能
Apr 19 Javascript
Vue Element-ui表单校验规则实现
Jul 09 Vue.js
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
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
Bootstrap table使用方法记录
2017/08/23 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
Python多线程编程(五):死锁的形成
2015/04/05 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
python中reload重载实例用法
2020/12/15 Python
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
Gap英国官网:Gap UK
2018/07/18 全球购物
params有什么用
2016/03/01 面试题
高校毕业生自我鉴定
2013/10/27 职场文书
安全生产目标责任书
2014/04/14 职场文书
小学清明节活动总结
2014/07/04 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
2015年全民创业工作总结
2015/07/23 职场文书
python 调用js的四种方式
2021/04/11 Python
python中opencv实现图片文本倾斜校正
2021/06/11 Python
分析Java中Map的遍历性能问题
2021/06/26 Java/Android