js变量作用域 小题测试

function fn() { 
      var a = 5;
      console.log(a);
}
fn();  
console.log(a);

// 5
// 报错 全局访问不了局部

var a = 1;
function fn(){
       var a = 2;
       console.log(a);  
}
fn();
console.log(a);  

// 2 就近原则
// 1

var a = 1;
function fn(){
     a = 2;  // 修改全局变量
    console.log(a);  
}
fn();
console.log(a);  

// 2
// 2

var a = 10;
function  fn(){
      var  a;
      console.log(a);     
      a = 20;
      console.log(a);     
      var  a = 30;
}
fn();
console.log(a);     

// undefined
// 20
// 10

var x = 10; 
function f1(num){ 
        return num++; 
} 
var y = f1(x); 
console.log(x);  
console.log(y);  

// 10
// 10

var x = 10; 
function f1(num){ 
        return ++num; 
} 
var y = f1(x); 
console.log(x);  
console.log(y);  

// 10
// 11

var a = 10; 
function test(a){
    a -= 3;
} 
test(a); 
console.log(a);  

// 10

var a = 10; 
function test(x){
     x -=3;
} 
test(a); 
console.log(a);

// 10

console.log(b);  
b = 10;

// b is not defined
一个变量没有使用var声明并赋值时,它就为全局变量,但因为没有var声明不会预解析,先使用会报错不认识

console.log(b);  
var a = b = 0;

// b is not defined
如上题理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值