JS高级02:ES5数组新增方法、函数、闭包
创始人
2024-04-01 05:03:50
0

ES5数组新增方法、函数、闭包

  • ES5新增方法
    • 筛选数组filter方法
    • some()
    • 商品查询案例
  • Object.defineProperty
  • Object.keys
  • delete obj.name(删除属性名)
  • bind
    • call apply bind总结
  • 高阶函数
    • 闭包
    • 闭包应用一
    • 闭包应用二
    • 闭包应用三

ES5新增方法

ES5数组新增了filter、map、some、every这几个方法
字符串新增了trim()去除空白的方法,返回一个新的字符串

筛选数组filter方法

filter()方法创建一个新的数组,新数组中的元素时通过检查数组中符合条件的元素,主要用于筛选数组

  • 筛选出数组中的偶数
 

some()

some方法用于检测数组中的元素是否满足指定条件(查找数组中是否有满足条件的元素)
返回值是boolean值,如果找到满足条件的元素返回true,找不到返回false

  • 查找元素中是否有偶数
 

商品查询案例

如果查询数组中唯一的元素,用some()方法更合适,因为它找到和这个元素,就不在进行循环,效率更高


Document

按照价格查询: - 按照商品名称查询:
id产品名称价格

Object.defineProperty

Object.defineProperty:往对象中添加或者属性或修改原有属性
如果属性没有则新加,如果有则修改

  
   

Object.keys

获取对象的属性名,返回值为对象属性名的数组

    

delete obj.name(删除属性名)

 

bind

改变函数内this指向, js提供了三种方法 call() apply() bind()
bind()方法不会调用函数,但是能改变函数内部this指向,返回由指定的this值和初始化参数改造的原函数的拷贝

 

如果有的函数我们不需要立即调用,但是又想改变这个函数内部的this指向此时的bind

  • 案例
    有一个按钮,当我们点击了之后就禁用这个按钮,3秒之后开启这个按钮
 

call apply bind总结

相同点:都可以改变函数内部的this指向
区别点:call和apply会调用函数,并且改变函数内部this指向
call和apply传递的参数不一样,call传递参数,apply必须以数组形式
bind不会调用函数,可以改变函数内部this指向

  • 应用场景
    call经常做继承
    apply经常跟数组有关系,比如借助于数学对象实现数组最大值最小值
    

bind不调用函数,但是还想改变this指向,比如改变定时器内部的this指向

高阶函数

高阶函数:高阶函数是对其他函数进行操作的函数,它接受函数昨晚参数或将函数作为返回值输出

  • 函数作为参数(应用于回调函数)

  • 函数作为返回值(应用于闭包)
 

闭包

定义:指有权访问另一个函数作用域中变量的函数

简单理解就是,一个作用域可以访问另外一个函数内部的局部变量,闭包就是函数
内部函数访问外部作用域函数变量的时候,只有当闭包函数被调用完毕,该变量才会被销毁,否则将一直存放在闭包函数中(闭包对象)

 

闭包的主要作用:延伸了变量的作用范围

闭包应用一

点击li输出当前li的索引号
立即执行函数也称为小闭包,因为立即执行函数里面的任何一个函数都可以使用它的i变量

    


  • 榴莲
  • 臭豆腐
  • 鲱鱼罐头
  • 大猪蹄子

闭包应用二

3秒后,打印li元素的内容

    


  • 榴莲
  • 臭豆腐
  • 鲱鱼罐头
  • 大猪蹄子

闭包应用三

计算打车价格

 

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...