关于js的作用域,自我认知

Posted gao-xiaomeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于js的作用域,自我认知相关的知识,希望对你有一定的参考价值。

作用域要从两个步骤去理解这个概念:

1>首先要找到诸如 var  function 参数  之类

  alert(a);var a = 3;

  alert(a)是 ‘未定义‘

     所有的变量,在正式运行代码前,都提前赋了一个值:未定义

  fn1 = function fn1(){ alert(2); }

    所有的函数,在正式运行代码之前,都是整个函数块

  遇到重名的:只留一个,变量和函数重名了,就只留下函数

2>逐行解读代码:

  表达式:= + - * / % ++ -- ! 参数……

  表达式可以修改预解析的值!

alert(a);    //function a (){ alert(4); }            
var a = 1;   
alert(a);    //1                
function a (){ alert(2); }
alert(a);    //1                
var a = 3;        
alert(a);    //3                
function a (){ alert(4); }
alert(a);    //3                

a();        //a is not a function
var a = 1;
function fn1(){
    alert(a);        //undefined                
    var a = 2;
}
fn1();           
alert(a);         //1
var a = 1;
function fn1(){
    alert(a);                        
    a = 2;
}
fn1();          //1
alert(a);        //2        
var a = 1;
function fn1(a){      //参数a = var a
    alert(a);        //undefined                
    a = 2;
}
fn1();
alert(a);            //2
var a = 1;
function fn1(a){
    alert(a);                        // 1
    a = 2;
}
fn1(a);
alert(a);                            // 1

 

以上是关于关于js的作用域,自我认知的主要内容,如果未能解决你的问题,请参考以下文章

JS 作用域及作用域链

JS 作用域及作用域链

js 关于闭包的小总结

JS---闭包

关于 js 的作用域的对话过程的理解

#导入MD文档图片#关于JS中的作用域中的沉思