浅谈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 相关文章推荐
js中字符替换函数String.replace()使用技巧
Aug 14 Javascript
cookie中的path与domain属性详解
Dec 18 Javascript
关于Vue.js一些问题和思考学习笔记(1)
Dec 02 Javascript
jQuery Masonry瀑布流布局神器使用详解
May 25 jQuery
bootstrap精简教程_动力节点Java学院整理
Jul 14 Javascript
浅谈原型对象的常用开发模式
Jul 22 Javascript
SVG动画vivus.js库使用小结(实例代码)
Sep 14 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
Oct 20 Javascript
Vue.js自定义事件的表单输入组件方法
Mar 08 Javascript
iview日期控件,双向绑定日期格式的方法
Mar 15 Javascript
JS中promise化微信小程序api
Apr 12 Javascript
vue实现跳转接口push 转场动画示例
Nov 01 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
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
js实现广告漂浮效果的小例子
2013/07/02 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
微信小程序时间轴实现方法示例
2019/01/14 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
详解vue高级特性
2020/06/09 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
JS实现百度搜索框
2021/02/25 Javascript
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python异常处理总结
2014/08/15 Python
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
小学端午节活动方案
2014/03/13 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
中层干部培训方案
2014/06/16 职场文书
记账会计岗位职责
2014/06/16 职场文书
在职证明范本
2015/06/15 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书
如何优化vue打包文件过大
2022/04/13 Vue.js