Js 基础

Js的全局作用域就是window

Function 内存中保存一段代码的函数 代码重用 调用函数 函数名(实参值)

第一种 以声明的方式创建函数 function 函数名(形参列表){ 函数体 return 返回值 } 有一个问题:会被声明提前

第二种 以赋值的方式创建函数 var arr= function (形参列表){ 函数体 return 返回值 }

第三种 用new创建函数 几乎不用 var fun=new Function函数名(形参列表){ 函数体 return 返回值 }

在程序开始执行前!程序会先将var声明的变量和funtion声明的函数,提前到当前作用域的顶部集中创建,而赋值留在原地啊

函数 解决声明提前 赋值方式创建一个函数 var arr= function (形参列表){ 函数体 return 返回值 }

变量存在window中 函数也存在window中

什么是变量 内存中存储一个数据的存储空间,再起一个名字

重载 overload

重载是多个同名函数,不同形参列表,在调用时,可根据传入的实参列表不同,动态选择匹配的函数执行

Js不支持标准的重载写法,因为js不允许多个同名函数同时存在 解决借助arguments来实现重载

函数都有一个arguments对象,会保存形参数据 有下标有length属性 可以根据length的长度判断用户输入的实参长短 如果.length相同,区分不出来,可以用typeof判断arguments[i]的数据类型

匿名函数 定义函数时,不被任何变量引用的函数

为什么:1、为了节约内存 2、划分临时作用域 匿名函数自调:定义函数后,立即调用函数,调用后立即释放 ( function (形参列表){ 函数体 return 返回值 })()

作用域和作用域链

1、作用域scope:作用域就是一个变量的可用范围,本质上作用域是保存变量的一个对象,为了避免不同范围的变量互相干扰,在全局作用域中保存的变量叫做全局变量,函数作用域中保存的变量叫局部变量

Js中没有块级作用域 也就是说js中的for if 这类都不是作用域

2、作用域链 一个函数可用的所有作用域对象的集合

闭包闭包原理

1、闭包 既可以重用一个变量,又保护了变量不被污染

外部是一个以声明的方式创建函数,外层函数将内层函数return到外部,最后调用外层函数,获得内层函数返回的函数对象,保存在变量中,反复使用

问题:局部变量在调用后应该释放,结果没有释放,还累加了

闭包原理 外部的函数对象被内部的函数对象所引用,无法释放
Js最核心的

1、JS对象底层,其实都是关联数组,任何对象和数组的成员,都可以用【“下标”】访问,任何对象和数组都可在任何时候随意添加新成员,访问任何对象和数组的不存在位置,都不会报错

2、Js中的函数也是一个普通的对象而已。函数名仅仅是一个普通的变量,函数名变量通过对象地址引用函数 以声明的方式创建函数存在window中

Window.onscroll 页面滚动时

防抖:只要不是最后一次触发,就不执行异步操作

节流:第一次发生请求后,只要响应没回来,就不能发送第二次 定义一个开关布尔类型

document.addEventListener() 方法用来添加事件函授可以使用 document.removeEventListener() 方法来移除 document.addEventListener()事件的函数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值