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

标题: 蒋鹏冲-20221123-js高级01 [打印本页]

作者: 北纬33    时间: 2022-11-23 23:31
标题: 蒋鹏冲-20221123-js高级01
一,今日学习内容:
1.执行环境与作用域
                1.1执行环境和变量对象和作用域【理解】
                        概念:
                                1.标识符:变量名/函数名/形参/对象的键名  统称为标识符
                                2.作用域:标识符可以被访问的范围,就是作用域
                                3.执行环境:代码运行的环境,js有两种执行环境,全局执行环境,函数执行环境
                                4.js执行环境,都被放入一个栈中
                                        总结:
                        总结:
                                作用域链:提供了一套标识符访问的规则,让标识符可以进行有序访问,(规则:从里往外找,查找标识符,找到就使用,停止查找的过程,知道window,找不到,会报错)
                                作用域根据作用域链这套规则锁死了
                                作用域:标识符可以被访问的范围:(自己和自己的子(后)代作用域)
                1.2作用域分类【掌握】
                        全局作用域
                        局部作用域(函数作用域)
                        块级作用域(es6新增,es5没有)
2.函数进阶
                2.1声明函数的方式
                        声明式
                                function f1() {
    console.log('f1');
}
                        表达式
                                let f2 = function () {
    console.log('f2');
}
                2.2箭头函数
                        es6:箭头函数 (形参)=>{js表达式}
                2.3箭头函数可以省略的情况
                        {}中只有一句代码:省略花括号并且同时必须省略return
                        形参有且只有一个,可以省略()
                2.4函数的参数
                        形参:占位用的,叫什么都没有关系,主要是要语义化,形式参数
                        实参:调用函数的时候传入的实际的参数
                2.5arguments
                        是一个伪数组,在函数内部获取到所有实参的集合,可以使用for循环,可以通过小标取值,像数组,不是数组,不能使用数组的方法
                2.6设置参数的默认值
                        // ES5:
function fn(形参) {
        let 变量 = 形参 || 默认值;
}
// ES6:
function fn(形参 = 默认值) {
}

function fn(n) {
    var n = n || 666;
    return n;
}
console.log(fn(0));666
console.log(fn());666

function fnn(n = 99) {
    return n;
}
console.log(fnn());
console.log(fnn(0));0
console.log(fnn(20));
                2.7剩余参数rest
                        es6的箭头函数中没有arguments
                        剩余参数rest是真数组,可以直接使用数组的方法
                2.8函数的返回值
                        // 函数返回什么,就得到什么,函数可以返回任何东西
// 函数没有写return,函数的返回值为默认值undefined
// 函数在哪里调用,返回值就返回到那里去
                2.9函数的调用
                        直接调用        函数名(实参)
对象的属性和方法调用        对象.方法()
回调--定时器,自动执行,自动调用
自己调用自己----自调用函数,立即执行函数表达式IIFE
                        写js代码,如果全局标识符过多,全局污染
比较容易与其他人的代码冲突
3.闭包
跨作用域访问变量,形成闭包,闭包是一种作用域的体现
常见的闭包写法是:父函数嵌套子函数,子函数可以访问父函数的变量,巴子函数返回或者挂载window上






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