zoukankan      html  css  js  c++  java
  • 作用域面试大纲总结

    首先我们得知道什么是作用域,什么是作用域链

    作用域它是指对某一变量和方法具有访问权限的代码空间,在js中,作用域是在函数中维护。表示变量或函数起作用的区域,指代了他们在什么杨的上下文中执行,亦即上下文执行环境。JavaScript中的作用域只有两种:全局作用域和本地作用域,本地作用于是按照函数来区分的。

    说了那么多其实作用域就是浏览器给js的一个生存环境

    那再了解下什么是作用域链:

      js中的关键字var和function都可以提前声明和定义,提前声明和定义的放在我们的内存地址(对内存)中。然后js从上到下逐行执行,遇到变量就去内存地址查找是否存在这个变量。有就使用,没有就继续向父级 作用域查找直到window下结束,这种查找机制叫作用域链。

      我们要知道js代码中存在者大量的变量和函数,我们再使用他们的时候一定要知道他们归属谁

    以下是我整理的几道作用域题,可以看一下:

    1、
      var   a=123;
      function  fun(){
        alert(a)  
       }
      fun()
    2、
      var   a=123;
      function   fun(){
        alert(a);  
        a=456;
       }
      fun()
      alert()  //
    3、
      var   a=123;
      function   fun(){
        alert(a);  
        a=456;
       }
      fun()
      alert(a)    
    4、
      var   a=123;
      function   fun(a){
        alert(a);  
        a=456;
       }
      fun();
      alert(a)  
    5、
      var   a=123;
      function    fun(a){
        alert(a);  
        a=456;
       }
      fun(123)
      alert(a)  
    6、
      var   a=12;
      function   fn(){
        console . log(a)  
        var   a=45;
         console . log(a) 
       }
      fn()
    7、
      var   a=12;
      function   fn(){
        console . log(a)  
        a=45;
        console . log(a)  
        }
      fn()
    8、
      function   fn(){
        console . log(11) 
        function    ff(){
          console . log(22)
          }
        ff()  
      }
      fn()  
    9、
      var   a=12;
      function   fn(){
        console . log(a)  
        return  4;
        var  a=45;
       }
      fn()
    10、
      var   a=45;
      function    fn(a){
        console . log(a) 
       }
      fn()
    11、
      console . log(total);  
      var   total=0;
      function  fn(num1,num2){
        console . log(total);  
        var  total=num1+num2;
        console . log(total)   
       }
      fn(100,200)
      console . log(total)   
    12、
      console . log(to)    
      var   to=1;
      function   fn(n1,n2){
        console . log(to)   
        to=n1+n2;
        console . log(to)    
       }
      fn(10,20)
      console . log(to)    
    13、
      function  fn(a){
        console . log(a)  
        var   a=123;
        console . log(a) 
        function  a(){ }
        console . log(a)  
        var  b=function(){ }
        console . log(b) 
        function b(){ }
       }
      fn(1)
      注:如果我们声明得变量和函数同名了,在预解释得时候只声明一次
    14、
      function test(a,b){
        console . log(b)  
        console . log(a)  
        c=0;
        a=3;
        b=2;
        console . log(b);    
        function   b(){ }
        function   d(){ }
        console . log(b)    
       }
      test(1)
    15、
      function   test(a,b){
        console . log(a)  
        console . log(b)  
        var   b=234;
        console . log(b)  
        a=123;
        console . log(a)  
        function   a(){ }
        var   a;
        b=234;
        var   b=function (){ }
        console . log(a);  
        console . log(b)    
       }
      test(1)

  • 相关阅读:
    第八周作业。
    作业。
    第七周作业。
    作业。
    Android简易计算器
    Android第四周
    java6.12
    java5.29
    java5.28
    java5.22
  • 原文地址:https://www.cnblogs.com/wkxdd/p/10054949.html
Copyright © 2011-2022 走看看