浅度了解JS中加var和不加var的区别

1、在JS函数的使用中,函数无参数的情况下:函数作用域内定义变量加上var,则是局部变量,不加var成为全局
例:
var a=10;
function change(){
//a=11; 执行这个,下面console.log(a)出来是11,a是全局变量(重新赋值)。
//var a=11; 执行这个,下面console.log(a)出来是10,a是局部变量。
}
change();
console.log(a);

如果函数中有参数传进的话:a=11就是给参数重新赋值,改变不了全局变量
var a=10;
function change(a){
a=11;//
console.log()//打印出来的是11
}
change(12);
console.log(a);//打印出来的是10

2、var的存在对于全局作用域还是局部作用域是声明和提升的作用
JS程序在执行之前,除去会检查语法错误之外,还会检查var声明的变量,把var声明提升到作用域的最前面,但这里赋值还是在原来的地方

var b=1;
function change1(){
//var b; 下面定义var b=2,实际是在这里先检查声明
console.log(b);
//b=2; 之后在这里赋值
var b=2;
}
change1();

上面程序执行会打印出undefined而不会打印出1或者2,因为在函数局部作用域里面只声明未赋值。

所以不加var,是变量未声明,只是赋值,var完成了变量的声明+赋值

PS:
console.log(c);
//var c=1; 这种定义会打印出undefined
//c=1; 这种就会直接报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值