ES5新特性

简介: es5

1.严格模式

在程序点公布写"use strict"

①禁止给为声明的变量赋值  ------> 避免了内存泄漏和全局污染

②静默失败升级为错误  ------->静默失败,也会报错!便于调试

③普通函数调用和匿名函数自调中的this不再指向window,而是指向undefined,防止内存泄漏和全局污染

④禁止使用arguments.callee -------> 递归是使用,但为了避免紧耦合,可用循环代替

2.保护对象,控制对象的属性和结构

①   保护对象的属性

         1.writable:true/false  是否可修改这个属性

         2.enumerable:true/false   是否可被  for in遍历到 (但是只能防住for in,不能防住清醒访问)

         3.configurable:true/false  (a.是否可删除该属性   b.是否可修改前两个开关)其中configurable一旦改为false是不可逆的

  ②    保护对象的结构

         1.防扩展:禁止添加新属性:obj.preventExtensions(obj)    默认是true

         2.密封:在兼具防扩展的同时,进一步禁止删除现有属性  object.seal(obj)

         3.冻结:在兼具密封的基础上,进一步禁止修改属性的值     object.freeze(obj)

3.call、apply、bind替换this所指对象

     1.函数.call("要替换的对象",参数一,参数二,.......):

       2. 函数.apply("要替换的对象",数组),当实参列表为一个数组的时候才用apply,通常是将数组整体传入,现讲数组打散,然后分别将参数传给原函数

       3.var  newobj = obj.bind()    bind的用法和前两个有所区别.bind是在原函数的基础上创建一个新函数的副本,并永久替换新函数中的this为指定的对象。新函数中的this和开头部分形参,已被永久替换为固定的对象和固定的参数值。今后如果需要反复调用新函数可使用bind替换this.,只要传入可能变化的剩余几个实参值即可!


相关文章
|
SQL 存储 关系型数据库
Mysql 的InnoDB引擎下支持hash索引吗?
Mysql 的InnoDB引擎下支持hash索引吗?
1045 0
Mysql 的InnoDB引擎下支持hash索引吗?
|
Cloud Native 数据库 Docker
云原生之使用Docker部署Dokuwiki个人笔记工具
云原生之使用Docker部署Dokuwiki个人笔记工具
1080 0
|
JavaScript
Selenium成长之路-25 日历控件的处理
Selenium成长之路-25 日历控件的处理
373 0
Selenium成长之路-25 日历控件的处理
|
消息中间件 运维 Kubernetes
分享实录 | 阿里巴巴测试环境管理实践概述
在软件研发过程中,“测试环境”是部署最频繁、也是开发者使用最频繁的一种运行环境,稳定而易用的测试环境能够极大提高开发者的工作效率和幸福感。为更好的将阿里巴巴在测试环境管理方面的实践和经验跟广大开发者分享,《云效说码》策划了《阿里巴巴Kubernetes测试环境开源工具箱》系列直播视频,由阿里巴巴技术专家林帆(金戟)和郑云龙(砧木) 来为大家讲述。
4935 1
分享实录 | 阿里巴巴测试环境管理实践概述
|
Arthas 小程序 前端开发
抖音小程序集成支付宝支付
抖音小程序集成支付宝支付
1634 0
抖音小程序集成支付宝支付
|
JavaScript jenkins Linux
Vue整合element-china-area-data实现PC端省市区三级联动选择器
demo环境是SpringBoot+Vue+elementUI,开发工具是idea,有涉及到省市区三级联动选择器,网上查找了下,发现了这款和elementUI相匹配的element-china-area-data,这样的话样式什么的就不用担心会很丑,也不需要调,最主要是还可以直接获取到省市区编码,都不用通过后台接口转换。于是就撸起袖子,满心欢喜的整进来。
2126 0
Vue整合element-china-area-data实现PC端省市区三级联动选择器
|
SQL JSON 缓存
Seata json decode exception, Cannot construct instance of `java.time.LocalDateTime` 报错原因/解决方案最全汇总版
Seata json decode exception, Cannot construct instance of `java.time.LocalDateTime` 报错原因/解决方案最全汇总版
1984 0
Seata json decode exception, Cannot construct instance of `java.time.LocalDateTime` 报错原因/解决方案最全汇总版
|
编解码 计算机视觉
【方便的Opencv】实现实时监测电脑屏幕与摄像头前的人
【方便的Opencv】实现实时监测电脑屏幕与摄像头前的人
1199 0
【方便的Opencv】实现实时监测电脑屏幕与摄像头前的人
|
Java Shell 网络安全
Alibaba Cloud Toolkit使用:在 Intellij IDEA 中部署 Spring Boot / Spring Cloud 应用到远程服务器
Alibaba Cloud Toolkit使用:在 Intellij IDEA 中部署 Spring Boot / Spring Cloud 应用到远程服务器
980 0
Alibaba Cloud Toolkit使用:在 Intellij IDEA 中部署 Spring Boot / Spring Cloud 应用到远程服务器