菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育

标题: 赵强-20221123-JS高级day01 [打印本页]

作者: BlueFlame    时间: 2022-11-24 00:16
标题: 赵强-20221123-JS高级day01
今日所学内容:
# JS高级-day01

js是一门语言,熟练掌握

今日任务:

1.执行环境与作用域----能分析清楚即可,掌握作用域的分类---10%

2.函数进阶的精通----非常熟练的使用---40%

3.闭包的精通----能说的非常清楚什么是闭包,有什么作用,什么特点,什么缺点怎么解决----50%

## 1.执行环境与作用域

1.1执行环境和变量对象和作用域[理解]

概念:

​        1.标识符:变量名/函数名/形参/对象的键名,统称标识符

​        2.作用域:标识符可以被访问的范围,就是作用域

​        3.执行环境:代码运行环境,js有两种执行环境,全局执行环境,函数执行环境

​        4.js执行环境,都被放入一个栈中

​        5.作用域链:提供了一套标识符访问的规则,保证标识符有序访问

总结:作用域链(规则:从里往外找,查找标识符,找到就使用,停止查找的过程,直到window,找不到,会报错)

作用域根据作用域链这套规则锁死

作用域:标识符可以被访问的范围:(自己和自己的子(后代)作用域)

## 1.2作用域分类【掌握】

        1.全局作用域
        2.函数作用域(局部作用域)
        3.块级作用域(ES6新增,ES5没有)

## 2.函数进阶

1.1声明函数的方式
        //ES5
     f1(); ---可以在函数声明前面调用函数
    1.声明式
    function f1(){
        console.log('f1');
    }

    2.表达式
    //f2(); 不能在函数声明上面调用函数
    let f2 = function(){
        console.log('f2');
    }
    f2();

    //ES6;
    //箭头函数 (形参)=>{js表达式}
    //f3(); 不能在函数声明上面调用
      var f3 = () => {  报错not a function
      let f3 = () => {
          console.log('f3');
      }
      f3();

1.2箭头函数
        //ES6;
    //箭头函数 (形参)=>{js表达式}
    //f3(); 不能在函数声明上面调用
    //var f3 = () => {  报错not a function
      let f3 = () => {
          console.log('f3');
      }
      f3();

1.3箭头函数可以省略的情况

        1.{}中只有一句代码,省略花括号并且同时必须省略return
        2.形参有且只有一个,可以省略()

1.4函数的参数

        1.形参:占位用的,叫什么都没有关系,主要是要语义化,形式参数
        2.实参:调用函数的时候传入的实际参数

1.5arguments

是一个伪数组,在函数内部获取到所有实参的集合,可以使用for循环,可以通过小标取值,像数组,不是数组,不能使用数组的方法



1.6设置函数参数的默认值

        //ES5:
            function fn(形参){
                let 变量 = 形参 || 默认值;
            }
        //ES6:
            function fn(形参 = 默认值){
            }

1.7剩余参数rest

        ES6的箭头函数没有arguments
        剩余参数rest是真数组,可以直接使用数组的方法

1.8函数的返回值

        函数返回什么,就得到什么,函数可以返回任何东西
        函数没有写return,函数的返回值为默认值undefined
        函数在哪里调用,返回值就返回到哪里

1.9函数的调用

        直接调用  函数名(实参)
        对象的属性和方法调用  对象.方法()
        回调---定时器,自动执行,子哦对那个调用
        自己调用自己----自调函数,立即执行函数表达式IIFE

## 3.闭包

        1.跨作用域访问变量,形成闭包,闭包是一种作用域的体现
        2.常见的闭包写法是:父函数嵌套子函数,子函数可以访问夫函数的变量,把子函数返回或者挂载在window上






欢迎光临 菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育 (http://www.xingmaxueyuan.com/) Powered by Discuz! X3.4