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 相关文章推荐
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
Mar 12 Javascript
javascript高级学习笔记整理
Aug 14 Javascript
JavaScript代码复用模式详解
Nov 07 Javascript
学习JavaScript设计模式(代理模式)
Dec 03 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
Dec 20 Javascript
JS动态插入并立即执行回调函数的方法
Apr 21 Javascript
星期几的不同脚本写法(推荐)
Jun 01 Javascript
Vue.2.0.5过渡效果使用技巧
Mar 16 Javascript
在create-react-app中使用css modules的示例代码
Jul 31 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
Jan 03 Javascript
Vue 指令实现按钮级别权限管理功能
Apr 23 Javascript
在pycharm中开发vue的方法步骤
Mar 04 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导入excel文件到mysql数据库的方法
2015/01/14 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
Python生成pdf文件的方法
2014/08/04 Python
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
Python实现的密码强度检测器示例
2017/08/23 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
python3.6的venv模块使用详解
2018/08/01 Python
Python 处理图片像素点的实例
2019/01/08 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
北京天润融通.net面试题笔试题
2012/02/20 面试题
公司年会晚宴演讲稿
2014/01/06 职场文书
学生出入校管理制度
2014/01/16 职场文书
副处级干部考察材料
2014/05/17 职场文书
单位实习工作证明怎么写
2014/11/02 职场文书
毕业生入职感言
2015/07/31 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
导游词之包公祠
2019/11/25 职场文书
解决mysql的int型主键自增问题
2021/07/15 MySQL
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android
git stash(储藏)的用法总结
2022/06/25 Servers