为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript 加var 关键字与不加var关键字有啥区别呢?

JavaScript 加var 关键字与不加var关键字有啥区别呢?

三国纷争 2019-03-08 15:11:05
貌似加var不加都可以,但这两个有啥区别呢?
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

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 e = 'hello world';

function cc(){

    e = 'hello Bill';

    console.log(e);    // 'hello Bill'

}

cc()   // 'hello Bill'

console.log(e)     // '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定义,就会报错。


查看完整回答
反对 回复 2019-04-13
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

简单来说就是加了var是局部变量 不加是全局变量。只有加了var的情况下就能限定该变量的使用范围 这样在别的方法里面也可以命名同样的变量了


查看完整回答
反对 回复 2019-04-13
  • 3 回答
  • 0 关注
  • 636 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号