浅谈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 相关文章推荐
setTimeout 不断吐食CPU的问题分析
Apr 01 Javascript
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
Nov 30 Javascript
PHP PDO操作总结
Nov 17 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
jQuery+正则+文本框只能输入数字的实现方法
Oct 07 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
Feb 27 Javascript
vue几个常用跨域处理方式介绍
Feb 07 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
Aug 20 Javascript
如何区分vue中的v-show 与 v-if
Sep 08 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
Sep 09 Javascript
js实现自动锁屏功能
Jun 02 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动态生成VRML网页
2006/10/09 PHP
PHP Socket 编程
2010/04/09 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
php常用表单验证类用法实例
2015/06/18 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
影响jQuery使用的14个方面
2014/09/01 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变rgba的a值实现)
2019/01/24 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
2019/07/25 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
python Django模板的使用方法
2016/01/14 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
python实现FTP循环上传文件
2020/03/20 Python
python实现猜数游戏
2020/03/27 Python
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
服装公司总经理岗位职责
2013/11/30 职场文书
期末评语大全
2014/05/04 职场文书
骨干教师培训方案
2014/05/06 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
python获取淘宝服务器时间的代码示例
2021/04/22 Python
python实现的人脸识别打卡系统
2021/05/08 Python
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL