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 相关文章推荐
对象的类型:本地对象(1)
Dec 29 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
Jan 15 Javascript
瀑布流布局并自动加载实现代码
Mar 12 Javascript
javascript 手动给表增加数据的小例子
Jul 10 Javascript
javascript中如何处理引号编码&amp;#034;
Aug 15 Javascript
window.location.reload 刷新使用分析(去对话框)
Nov 11 Javascript
JavaScript &amp; jQuery完美判断图片是否加载完毕
Jan 08 Javascript
微信小程序使用request网络请求操作实例
Dec 15 Javascript
vue移动端屏幕适配详解
Apr 30 Javascript
详解vue 命名视图
Aug 14 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
Sep 25 Javascript
Vue 事件的$event参数=事件的值案例
Jan 29 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
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
JavaScript delete操作符应用实例
2009/01/13 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
js 本地预览的简单实现方法
2014/02/18 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
vue 2.0组件与v-model详解
2017/03/27 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
Vue如何实现监听组件原生事件
2020/07/03 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
python解析xml模块封装代码
2014/02/07 Python
深入浅析Python中的yield关键字
2018/01/24 Python
python 为什么说eval要慎用
2019/03/26 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
python 元组的使用方法
2020/06/09 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
英语师范专业毕业生自荐信
2013/09/21 职场文书
公证委托书格式
2014/09/13 职场文书
2015年药店工作总结
2015/04/20 职场文书
放牛班的春天观后感
2015/06/01 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python