ES5ES6 day16
- 一、ES5:
1、保护对象:保护对象的成员(属性和方法)
如何保护:
(1)、四大特性-每一个属性和方法都有四大特性
如何设置四大特性:
Object.defineProperties(obj,{
"属性名":{
value:实际保存值得地方
writable:true/false;//开关:控制着这个属性是否可以被修改;
enumerable:true/false;//开关:控制着这个属性是否可以被for in循环遍历到
configurable:true/false;//开关:控制着这个属性是否可以被删除
}
})
(2)、三个级别:
①、防扩展:禁止给对象添加新属性
object.preventExtensions(obj);
②、密封:禁止给对象添加新属性和删除属性
object.seal(obj);
③、冻结:禁止给对象添加新属性和删除属性和修改属性
object.freeze(obj);
2、*数组新的API:3组6个
(1)、判断:判断结果一定是一个布尔值
①、 every:每一个——要求每一个元素都要满足,结果才为true,只要一个不满足,结果则为false——类似&&:碰到false就不会在执行后续操作了
语法:arr.every(function(val,i,arr){
//var-当前值
//i-当前下标
//arr-数组本身
return 判断条件
})
②、some:有一些——要求每一个元素都不满足,结果才为false,只要有一个满足,结果则为true——类似 ||:碰到true就不会再执行后续操作了
语法:arr.some(function(val,i,arr){
return 判断条件
})
(2)、遍历:将数组中每一个元素取出来执行 相同或相似的操作
①、 forEach:遍历数组,直接修改原数组
语法:arr.forEach(function(var,i,arr){
直接操作
})
②、map:遍历数组,不修改原数组,返回一个新数组
语法:var newArr=arr.map(function(val,i,arr){
return 操作;
})
(3)汇总和过滤:
①、过滤:筛选出自己想要的,但是不会修改原数组
语法:var newArr=arr.filter(function(val,i,arr){
return 判断条件
})
②、汇总:把数组中的每个元素都汇总到一起
语法:var result=arr.reduce(function(prev,val,i,arr){
return prev+val
},基础值)
以上6个API的底层都是for循环,目的-简化for循环
3、Object.create():希望根据父对象创建子对象,继承自动设置完毕。
语法:var 子对象=Object.create(父对象,{
"自由属性":{四大特性},
})
4、面试:严格模式:很严格
开启:在你的任何作用域的顶部都可以加上这句话:"use strict"
功能:1、禁止给未声明的变量赋值-解决了全局污染
2 、禁默失败升级为错误
5、*****call/apply/bind:不是自己方法也可以使用,
(1)、call/appiy:【临时替换函数中心的this】-借用
语法:函数名.call(借用的对象,实参,.....);-单独传入每一个实参
函数名.apply(借用的对象,[实参,....]);-只能传入一个实参,是一个数组,但是其实apply也会悄悄地将数组打散
强调:call/apply,相当于立刻调用函数,立刻执行
(2)、bind:【永久替换了函数中的this】-买
3件事:
①、创建了一个和原函数功能完全相同的新函数
②、新函数中的this永久的绑定固定为了指定的对象,别人借不走
③、将新函数中的部分参数永久固定
语法:var 新函数=原函数.bind(指定对象,永久固定参数,.....);-不是立刻执行,需要自己调用
强调:bind绑定的新函数是没有办法被call/apply借走的
推荐使用:call/apply-借
固定套路:
1、Math.max/min.apply(Math,arr)
2、Object.prototype.toString.call/apply(arr)==="[object Array]"
3、***类数组转为不同数组:保存一下=Array.prototype.slice.call/apply(类数组)
二、ES6:简化了语法-都是干货
1、*模板字符串:可以在字符串中放入变量,不需要在做字符串的拼接了,简化了输入法的切换,${} 还实现了一个简单的js环境
语法:我的名字${name}
2、*块级作用域:尽量以后创建变量【优先】使用let关键字
let 变量名=值
作用:
1、禁止了声明提前
2、添加了块级作用域:一个{}就是一个块
3、记录者当前触发事件的元素的下标
3、***箭头函数:简化回调函数
公示:去掉function,在()和{}之间添加=>,如果形参只有一个,省略()如果函数体只有一句话,省略{},如果函数体只有一句话并且是return,return和{}都省略
特殊:千万不要将事件也简化为箭头函数-this会失效-暂时
4、for of 循环-不推荐
for(var v of arr){
v;//当前元素
}
缺点:1、不能修改原数组,只能返回新数组
2、不支持hash数组,不支持对象
ES5ES6 day16相关推荐
- Day16 os模块、time模块、random模、math模块
1.os模块-对系统就行操作 #system() 在python中执行系统命令 #popen() 执行系统命令返回对象,通过read方法读出字符串 #listdir() 获取指定文件夹中所有内容的名称 ...
- Java基础day16
Java基础day16 Java基础day16-集合3 1.Map集合 1.1Map集合概述和特点 1.2Map集合的基本功能 1.3Map集合的获取功能 1.4Map集合的遍历(方式1) 1.5Ma ...
- Spark Streaming揭秘 Day16 数据清理机制
Spark Streaming揭秘 Day16 数据清理机制 今天主要来讲下Spark的数据清理机制,我们都知道,Spark是运行在jvm上的,虽然jvm本身就有对象的自动回收工作,但是,如果自己不进 ...
- LeetCode算法入门- Generate Parentheses -day16
LeetCode算法入门- Generate Parentheses -day16 题目描述 Given n pairs of parentheses, write a function to gen ...
- QT每日一练day16:QMessageBox消息对话框
一.运行结果(GIF动图): 二.附代码 day16.pro QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG + ...
- 句句真研—每日长难句打卡Day16
句句真研-每日长难句打卡Day16 补九月二号 参考译文:那些回应称"音乐录音无法替代现场演出"的音乐会忠实听众没有真正抓住核心问题.
- Python菜鸟入门:day16编程学习
写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...
- day16【前台】项目展示
day16[前台]项目展示 1.首页显示项目 1.1.整体思路 1.2.创建VO 1.2.1.PortalTypeVO 数据库表 实体类如下:封装List<PortalProjectVO> ...
- 21天Jmeter打卡day16参数传递token传递,接口关联
21天Jmeter打卡day16参数传递 token传递,接口关联 https://www.jianshu.com/p/e3a116f7bf6b 实现效果,把第一个请求的响应结果,提取出来,作为变量传 ...
最新文章
- flashpaper打印机没有被正确安装_没有正确保存与安装,可导致80%的轴承提早失效...
- PHP MVC设想,MVC框架构思(一)
- php peridot 使用教程,PHP测试框架Peridot-支持BDD
- 漫长的数据中心绿化之路到底该如何走www.shzhenai.com
- 悬镜 linux防黑加固平台,悬镜答疑丨悬镜服务器防护CC效果如何?
- vc6可编译的 linux 源码,Linux 下源码编译FFMEG
- 解决Chrome调用IE弹出cmd黑窗口的问题
- 计算机原理(计算机系统漫游)
- 【AI视野·今日CV 计算机视觉论文速览 第153期】Fri, 16 Aug 2019
- COM, COM+ and .NET 程序集的区别
- [算法笔记]分块算法从入门到TLE
- golang导入包的理解
- A Singular Value Decomposition Approach For Recommendation Systems
- 打造黑苹果(一)组装硬件的选择与组装
- (超详细)搜索软件Everything的安装与使用
- 推荐系统(十六)多任务学习:腾讯PLE模型(Progressive Layered Extraction model)
- Python 查询全年天数
- POJ 3626 Mud Puddles (BFS)
- 【MT4 Client API 服务器直连接口】接口介绍
- cmd下查询公网ip地址
热门文章
- 华为防火墙双机热备(三层上下行交换机)
- switch中的参数类型
- 【数据库】数据库的基础知识
- QList、QVector,QSet,std::vector,std::list直接的转换关系总结
- 支持向量机中高斯核函数的直观理解
- 蓝桥杯 算法提高 9-2 文本加密(c语言版详细注释)
- Oracle 使用序列创建自增字段
- 许路平:Gvoice千万在语音输入的那些事
- 两轮换电领域的“苹果”,“换换”能成吗?
- 自然语言处理--文档集数据处理 gensim corpora.Dictionary