菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育
标题:
赵强-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