浅谈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 相关文章推荐
Valerio 发布了 Mootools
Sep 23 Javascript
javascript延时重复执行函数 lLoopRun.js
Jun 29 Javascript
Ext grid 添加右击菜单
Nov 26 Javascript
js关闭模态窗口刷新父页面或跳转页面
Dec 13 Javascript
对js关键字命名的疑问介绍
Apr 25 Javascript
jQuery应用之jQuery链用法实例
Jan 19 Javascript
JavaScript模拟数组合并concat
Mar 06 Javascript
Bootstrap学习笔记之css组件(3)
Jun 07 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
Sep 14 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
Jan 21 Javascript
js tab栏切换代码实例解析
Sep 03 Javascript
JavaScript实现公告栏上下滚动效果
Mar 13 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
深入了解php4(2)--重访过去
2006/10/09 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
Yii使用Captcha验证码的方法
2015/12/28 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
Ajax::prototype 源码解读
2007/01/22 Javascript
javascript 函数使用说明
2010/04/07 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
JS正则表达式验证数字代码
2014/01/28 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
深入理解python对json的操作总结
2017/01/05 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
降低python版本的操作方法
2020/09/11 Python
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
介绍Java的内部类
2012/10/27 面试题
营销主管自我评价怎么写
2013/09/19 职场文书
学生学习总结的自我评价
2013/10/22 职场文书
历史专业个人求职信分享
2013/12/20 职场文书
合伙协议书范本
2014/04/21 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
基于python实现银行管理系统
2021/04/20 Python