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

标题: 梁洁--20221123--js高级第一天 [打印本页]

作者: 梁杰,你好    时间: 2022-11-23 23:55
标题: 梁洁--20221123--js高级第一天
js是一门语言,需要熟练掌握。
任务:
执行环境与作用域
分析清除即可,
掌握作用域的分类。
函数进阶

闭包的精通

执行环境与作用域:

执行环境和变量对象和作用域
标识符:变量名或者函数名  形参  对象的键名
作用域:表示变量可以访问的范围
执行环境:代码运行的环境,js有两种  全局执行环境   函数执行环境
js的执行环境:都被放入一个栈里面。
作用域链:提供了一套标识符的访问的规则  保证我们的标识符有序的访问
总结:
作用域链  标识符的访问规则,让标识符可以进行有序的访问,(从里往外找,查找标识符,找到就是用,停止查找,一直找到window 找不到就会报错)
作用域根据我们的作用域链这一套规则锁死了
作用域:标识符可以被访问的范围,(自己和自己后代的作用域)
变量提升:在函数中写一个没有var  let  const的变量  会自动提升为全局   
相当于var一个全局变量但是没有赋值  在函数中进行赋值
作用域的分类
1、全局作用域
2、函数作用域(局部作用域)
3、块级作用域 (es6新增的,es5没有)

函数的进阶
函数的声明是es5  声明式和表达式
es6
箭头函数()=>{}
可以省略
1{}只有一句代码,省略花括号并且同时省略return
2,形参有且只有一个的时候,可以省略小括号
函数的参数
形参:站位符,叫什么都无所谓,主要是要有语义化
2、实参:调用函数的时候传入的实际的参数
1.5arguments
伪数组   ,函数内部所有实参的集合,可以使用for循环遍历,也可以通过下表来取值,像是数组但是不能使用数组方法
arguments  伪数组  所有实参的集合  不能使用数组的方法
[...arguments] for循环遍历加入到新的数组中
函数的默认值
es5:
function(canshu){
let bianliang=canshu ||默认值}
es6
function(形参=默认值)
剩余参数  function(a,b,....rest){}
函数返回值是方法的时候 需要返回方法的值
fn()();
函数返回什么  就会得到什么  可以对得到的值进行再处理
函数么有返回值  所有的返回值为undefined
函数在哪里调用 函数的返回值就会返回到哪里去

函数的调用
直接调用函数名(实参);
对象里面的属性和方法进行调用的对象.属性或者方法名加括号;
回调  自动调用   
自己调用自己  自调用函数,立即执行函数表达式IIFE

挂载在window上的都是全局变量,全局标识符
写js代码,如果全局标识符过多,会造成全局污染
比较容易和其他人的代码冲突


闭包:
跨作用于来访问变量,就会形成比表,闭包就是一种作用域的体现
2、常见闭包的写法是,父函数嵌套子函数,子函数可以访问父类函数的变量,把子函数返回或者挂载在window上


箭头函数中没有arguments  需要用到剩余参数






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