浅谈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 相关文章推荐
强制设为首页代码
Jun 19 Javascript
JavaScript入门教程(6) Window窗口对象
Jan 31 Javascript
jQuery1.6 使用方法一
Nov 23 Javascript
面向对象的Javascript之一(初识Javascript)
Jan 20 Javascript
JavaScript中setInterval的用法总结
Nov 20 Javascript
完美解决IE低版本不支持call与apply的问题
Dec 05 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
Jun 08 Javascript
js遮罩效果制作弹出注册界面效果
Jan 25 Javascript
JS实现颜色的10进制转化成rgba格式的方法
Sep 04 Javascript
Vuejs 页面的区域化与组件封装的实现
Sep 11 Javascript
javascript面向对象创建对象的方式小结
Jul 29 Javascript
JavaScript实现外溢动态爱心的效果的示例代码
Mar 21 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+DBM的同学录程序(5)
2006/10/09 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
PHP基本语法总结
2014/09/06 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
thinkphp分页集成实例
2017/07/24 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
ExpressJS入门实例
2015/01/14 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
JavaScript类的写法
2016/09/17 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
Windows下安装 node 的版本控制工具 nvm
2020/02/06 Javascript
Python编程中time模块的一些关键用法解析
2016/01/19 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
中专生毕业自我鉴定
2013/11/01 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
社区工作者个人总结
2015/02/28 职场文书
JS数组的常用方法整理
2021/03/31 Javascript