• 一、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相关推荐

  1. Day16 os模块、time模块、random模、math模块

    1.os模块-对系统就行操作 #system() 在python中执行系统命令 #popen() 执行系统命令返回对象,通过read方法读出字符串 #listdir() 获取指定文件夹中所有内容的名称 ...

  2. Java基础day16

    Java基础day16 Java基础day16-集合3 1.Map集合 1.1Map集合概述和特点 1.2Map集合的基本功能 1.3Map集合的获取功能 1.4Map集合的遍历(方式1) 1.5Ma ...

  3. Spark Streaming揭秘 Day16 数据清理机制

    Spark Streaming揭秘 Day16 数据清理机制 今天主要来讲下Spark的数据清理机制,我们都知道,Spark是运行在jvm上的,虽然jvm本身就有对象的自动回收工作,但是,如果自己不进 ...

  4. LeetCode算法入门- Generate Parentheses -day16

    LeetCode算法入门- Generate Parentheses -day16 题目描述 Given n pairs of parentheses, write a function to gen ...

  5. QT每日一练day16:QMessageBox消息对话框

    一.运行结果(GIF动图): 二.附代码 day16.pro QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG + ...

  6. 句句真研—每日长难句打卡Day16

    句句真研-每日长难句打卡Day16 补九月二号 参考译文:那些回应称"音乐录音无法替代现场演出"的音乐会忠实听众没有真正抓住核心问题.

  7. Python菜鸟入门:day16编程学习

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  8. day16【前台】项目展示

    day16[前台]项目展示 1.首页显示项目 1.1.整体思路 1.2.创建VO 1.2.1.PortalTypeVO 数据库表 实体类如下:封装List<PortalProjectVO> ...

  9. 21天Jmeter打卡day16参数传递token传递,接口关联

    21天Jmeter打卡day16参数传递 token传递,接口关联 https://www.jianshu.com/p/e3a116f7bf6b 实现效果,把第一个请求的响应结果,提取出来,作为变量传 ...

最新文章

  1. flashpaper打印机没有被正确安装_没有正确保存与安装,可导致80%的轴承提早失效...
  2. PHP MVC设想,MVC框架构思(一)
  3. php peridot 使用教程,PHP测试框架Peridot-支持BDD
  4. 漫长的数据中心绿化之路到底该如何走www.shzhenai.com
  5. 悬镜 linux防黑加固平台,悬镜答疑丨悬镜服务器防护CC效果如何?
  6. vc6可编译的 linux 源码,Linux 下源码编译FFMEG
  7. 解决Chrome调用IE弹出cmd黑窗口的问题
  8. 计算机原理(计算机系统漫游)
  9. 【AI视野·今日CV 计算机视觉论文速览 第153期】Fri, 16 Aug 2019
  10. COM, COM+ and .NET 程序集的区别
  11. [算法笔记]分块算法从入门到TLE
  12. golang导入包的理解
  13. A Singular Value Decomposition Approach For Recommendation Systems
  14. 打造黑苹果(一)组装硬件的选择与组装
  15. (超详细)搜索软件Everything的安装与使用
  16. 推荐系统(十六)多任务学习:腾讯PLE模型(Progressive Layered Extraction model)
  17. Python 查询全年天数
  18. POJ 3626 Mud Puddles (BFS)
  19. 【MT4 Client API 服务器直连接口】接口介绍
  20. cmd下查询公网ip地址

热门文章

  1. 华为防火墙双机热备(三层上下行交换机)
  2. switch中的参数类型
  3. 【数据库】数据库的基础知识
  4. QList、QVector,QSet,std::vector,std::list直接的转换关系总结
  5. 支持向量机中高斯核函数的直观理解
  6. 蓝桥杯 算法提高 9-2 文本加密(c语言版详细注释)
  7. Oracle 使用序列创建自增字段
  8. 许路平:Gvoice千万在语音输入的那些事
  9. 两轮换电领域的“苹果”,“换换”能成吗?
  10. 自然语言处理--文档集数据处理 gensim corpora.Dictionary