菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育
标题:
张锐杰-20221123-js高阶01
[打印本页]
作者:
张锐杰
时间:
2022-11-25 23:44
标题:
张锐杰-20221123-js高阶01
1.执行环境与作用域
1.1执行环境和变量对象和作用域【理解】
概念:
1.标识符:变量名/函数名/形参/对象键名 统称为标识符
2.作用域:标识符可以被访问的范围,就是作用域
3.执行环境:代码运行的环境,JS有两种执行环境,全局执行和函数执行
4.js执行环境,都被放入一个栈中
5.作用域链:提供了一套标识符访问的规则,保证标识符有序访问
总结:作用域链:提供了一套标识符访问的规则,让标识符可以进行有序的访问,(从里往外找,查找标识符。找到就使用,停止查找的过程,直到window,找不到,会报错)
作用域根据作用域链这套规则锁死了
作用域:标识符可以被访问的范围:(自己和自己的子(后代)作用域)
1.2作用域分类【掌握】
1.全局作用域
2.函数作用域(局部作用域)
3.块级作用域(ES6新增,ES5没有)
函数进阶
箭头函数
1.{}中有一句代码,省略花括号并且同时必须省略return
2.形参有且只有一个,可以省略()
arguments
是一个伪数组,在函数内部获取所有实参的集合,可以使用for循环,可以通过小标取值,不可以使用数组方法
设置函数参数的默认值
ES5
function fn(形参){
let 变量 = 形参 || 默认值;
}
ES6
function fn(形参=默认值){
}
剩余参数rest
箭头函数中没有arguments
函数返回值
函数返回什么,就得到什么,函数可以返回任何东西
函数没有写return,函数的返回值默认为undefined
函数在哪里调用,返回值就 返回到那里去
函数调用
直接调用 函数名(实参)
对象的属性和方法名 对象.方法()
回调--定时器,自动执行,自动调用
自己调用自己----自调用函数,立即执行函数表达式IIFE
立即执行函数表达式
挂载window上,成为了全局变量,全局的标识符
写js代码,如果全局标识过多,全局污染
比较容易与其他人的代码冲突
闭包
跨作用域访问变量,形成闭包,闭包是一种作用域的体现
常见的闭包写法:父函数嵌套子函数可以访问父函数的变量,把子函数返回或挂载window上
简单的闭包体现不出,虽然没用(但确实是闭包)
闭包正确的形成+
欢迎光临 菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育 (http://www.xingmaxueyuan.com/)
Powered by Discuz! X3.4