JS基础--函数作用域

时间:2020-12-13 20:26:44   收藏:0   阅读:23

嗨!我是前端小M~~

作用域

作用(有效)域(区域,范围)变量生效的范围

函数提升

 

1)声明式函数存在提升(只提升声明)
console.log(a); //Cannot access ‘a‘ before initialization    console.log(a);
let a = 5;                                                    var a = 5;
2)函数是一等公民,函数提升在变量提升之前,出现重名,被覆盖 无效
let test = 5;                                        function test(){
function test(){                                     console.log(`heihei`);
    console.log(`heihei`);                           }
}                                                    let test = 5;
console.log(test);       //5       ====变量提升=====>  console.log(test); //5
console.log(typeof test);//num                        console.log(typeof test);//num
test();                 //未声明                       5();//???
3) 变量使用前一定要声明,否则为全局变量

在函数中获取另一个函数的值

1.局部变量赋值给全局
let b = 2;        //被a赋值为1
let fn1 = function (){
   let a = 1;   //局部
   b=a;     //局部变量赋值给全局
}
let fn2 = function (){
    console.log(b);  //1
}
fn1();
fn2();
2.以形参的形式传递
let fn1 = function () {
    let a = 1;
    fn2(a);
}
let fn2 = function (x) {
    console.log(x);  //1
}
fn1();
3.以返回值的形式传递
let fn1 = function () {
    let a = 1;
    return a;  //1
}
let result = fn1();//1
let fn2 = function () {
    console.log(result);//1
}
fn2();

  

 

 

 

 

原文:https://www.cnblogs.com/trail0226/p/14128988.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!