浅谈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 选项卡效果(JS与HTML的分离)
Apr 01 Javascript
浅析JS刷新框架中的其他页面 && JS刷新窗口方法汇总
Jul 08 Javascript
JS中常用的输出方式(五种)
Jun 12 Javascript
微信小程序 自定义消息提示框
Aug 06 Javascript
浅谈vue路径优化之resolve
Oct 13 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
Feb 09 Javascript
基于Node.js实现压缩和解压缩的方法
Feb 13 Javascript
node thread.sleep实现示例
Jun 20 Javascript
详解Angular中通过$location获取地址栏的参数
Aug 02 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
Oct 08 Javascript
Angular请求防抖处理第一次请求失效问题
May 17 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
Oct 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
php结合表单实现一些简单功能的例子
2011/06/04 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
Extjs实现进度条的两种便捷方式
2013/09/26 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
2016/08/03 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
2016/12/20 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
python3设计模式之简单工厂模式
2017/10/17 Python
用Python shell简化开发
2018/08/08 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
Python常用爬虫代码总结方便查询
2019/02/25 Python
python实现电子产品商店
2019/02/26 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
股指期货心得体会
2014/09/13 职场文书
师德师风自查材料
2014/10/14 职场文书
个人催款函范文
2015/06/23 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
世界文化遗产导游词
2019/08/07 职场文书
python关于集合的知识案例详解
2021/05/30 Python
SQL中的三种去重方法小结
2021/11/01 SQL Server
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android