浅谈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 相关文章推荐
又一个小巧的图片预加载类
May 05 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
Oct 17 Javascript
JavaScript正则表达式之multiline属性的应用
Jun 16 Javascript
JavaScript中的cacheStorage使用详解
Jul 29 Javascript
Jquery Ajax Error 调试错误的技巧
Nov 20 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
Nov 30 Javascript
Bootstrap 填充Json数据的实例代码
Jan 11 Javascript
Angularjs验证用户输入的字符串是否为日期时间
Jun 01 Javascript
Router解决跨模块下的页面跳转示例
Jan 11 Javascript
AngularJS模态框模板ngDialog的使用详解
May 11 Javascript
js实现移动端轮播图
Dec 21 Javascript
详解微信小程序之scroll-view的flex布局问题
Jan 16 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
PHP+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
js获取url中"?"后面的字串方法
2014/05/15 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
python 换位密码算法的实例详解
2017/07/19 Python
Python中函数及默认参数的定义与调用操作实例分析
2017/07/25 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
师说教学反思
2014/02/07 职场文书
企业演讲比赛主持词
2014/03/18 职场文书
感恩教育月活动总结
2014/07/07 职场文书
2014年教务处工作总结
2014/12/03 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
新年祝酒词大全
2015/08/11 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书
python使用BeautifulSoup 解析HTML
2022/04/24 Python
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android