浅谈JavaScript中定义变量时有无var声明的区别


Posted in Javascript onAugust 18, 2014

前段时间回答了一个关于定义变量时使用关键字var与否的区别,总结回顾一下。

1.在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量。
使用var定义:

var a = 'hello World';
function bb(){
 var a = 'hello Bill';
 console.log(a);  
}
bb()      //'hello Bill'
console.log(a);  //'hello world'

不使用var定义:

var a = 'hello World';
function bb(){
 a = 'hello Bill';
 console.log(a);  
}
bb()      //'hello Bill'
console.log(a);  //'hello Bill'

2.在全局作用域下,使用var定义的变量不可以delete,没有var 定义的变量可以delete.也就说明隐含全局变量严格来说不是真正的变量,而是全局对象的属性,因为属性可以通过delete删除,而变量不可以。

3.使用var 定义变量还会提升变量声明,即
使用var定义:

function hh(){
 console.log(a);
 var a = 'hello world';
}
hh()      //undefined

不使用var定义:

function hh(){
 console.log(a);
 a = 'hello world';
}
hh()      //'a is not defined'

这就是使用var定义的变量的声明提前。

4.在ES5的'use strict'模式下,如果变量没有使用var定义,就会报错。

Javascript 相关文章推荐
jquery 图片截取工具jquery.imagecropper.js
Apr 09 Javascript
用Juery网页选项卡实现代码
Jun 13 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
Nov 04 Javascript
JS中sort函数排序用法实例分析
Jun 16 Javascript
使用微信小程序开发前端【快速入门】
Dec 05 Javascript
js实现下拉菜单效果
Mar 01 Javascript
利用Three.js如何实现阴影效果实例代码
Sep 26 Javascript
jQuery实现的上传图片本地预览效果简单示例
Mar 29 jQuery
详解Vue组件之间通信的七种方式
Apr 14 Javascript
vue图片加载失败时用默认图片替换的方法
Aug 29 Javascript
如何优雅地取消 JavaScript 异步任务
Mar 22 Javascript
JS实现按比例缩小图片宽高
Aug 24 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
Aug 18 #Javascript
使用node.js半年来总结的 10 条经验
Aug 18 #Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
Aug 18 #Javascript
根据当前时间在jsp页面上显示上午或下午
Aug 18 #Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
Aug 18 #Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
Aug 18 #Javascript
jquery中$(#form :input)与$(#form input)的区别
Aug 18 #Javascript
You might like
如何给phpadmin一个保护
2006/10/09 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
js模拟实现Array的sort方法
2007/12/11 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
基于JSON数据格式详解
2017/08/31 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
python使用socket远程连接错误处理方法
2015/04/29 Python
详解python 发送邮件实例代码
2016/12/22 Python
python函数的5种参数详解
2017/02/24 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
Exception类的常用方法
2012/06/16 面试题
计算机系毕业生推荐信
2013/11/06 职场文书
酒店前厅员工辞职信
2014/01/08 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
初三学生语文考试作弊检讨书
2014/12/14 职场文书
实习介绍信模板
2015/01/30 职场文书
五一劳动节活动总结
2015/02/09 职场文书
项目战略合作意向书
2015/05/08 职场文书
五年级作文之成长
2019/09/16 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis