浅谈JavaScript中定义变量时有无var声明的区别

 更新时间:2014年08月18日 15:41:36   投稿:hebedich  
这篇文章主要介绍了JavaScript中定义变量时有无var声明的区别分析以及示例分享,需要的朋友可以参考下

前段时间回答了一个关于定义变量时使用关键字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定义,就会报错。

相关文章

  • three.js实现3D视野缩放效果

    three.js实现3D视野缩放效果

    这篇文章主要为大家详细介绍了three.js实现3D视野缩放效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Javascript操作cookie的函数代码

    Javascript操作cookie的函数代码

    之前发布了javascript操作cookie一个大全里面有很多知识,大家可以在本站搜索,另外今天遇到js操作cookie又增加2款方法一个是简单版本、一个是封装版本,特意分享给大家
    2012-10-10
  • 为javascript添加String.Format方法

    为javascript添加String.Format方法

    每次在javascript中用加号合成字符串,真的没法忍受了,今天终于找到一高手写的方法,与大家分享。
    2009-11-11
  • 微信小程序实现流程进度的图样式功能

    微信小程序实现流程进度的图样式功能

    最近正在做微信小程序,需要实现一个流程进度的图样式,下面小编给大家带来了微信小程序实现流程进度的图样式功能实例代码,需要的朋友参考下吧
    2018-01-01
  • js验证框架之RealyEasy验证详解

    js验证框架之RealyEasy验证详解

    这篇文章主要为大家详细介绍了js验证框架之RealyEasy验证,记录了RealyEasy验证的使用步骤,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • 一道关于JavaScript变量作用域的面试题

    一道关于JavaScript变量作用域的面试题

    这篇文章主要为大家介绍了一道关于JavaScript变量作用域的面试题,如何解决这道面试题,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • js+css实现超简洁的二级下拉菜单效果代码

    js+css实现超简洁的二级下拉菜单效果代码

    这篇文章主要介绍了js+css实现超简洁的二级下拉菜单效果代码,通过非常简单的JavaScript遍历页面元素及动态设置样式达到二级下拉菜单的效果,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • JavaScript实现无穷滚动加载数据

    JavaScript实现无穷滚动加载数据

    这篇文章主要为大家详细介绍了JavaScript实现无穷滚动加载数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 微信小程序获取手机号的踩坑记录

    微信小程序获取手机号的踩坑记录

    这篇文章主要给大家介绍了关于微信小程序获取手机号踩坑的相关资料,详细记录了踩坑的过程以及解决的方法和猜想,通过示例代码以及图片介绍的非常详细,需要的朋友可以参考下
    2021-06-06
  • js实现双击单元格变成文本输入框效果代码

    js实现双击单元格变成文本输入框效果代码

    单击单元格,即可将其变为文本框,方便编辑测试
    2008-04-04

最新评论