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.,只要传入可能变化的剩余几个实参值即可!


相关文章
|
运维 网络协议 安全
Wireshark经典实践和面试13点总结
这篇文章是关于Wireshark软件的实践和面试问题的总结,包括软件概述、功能、适合人群、平台支持、相关网址、界面介绍等内容。
452 2
Wireshark经典实践和面试13点总结
|
数据采集 存储 JavaScript
基于Python 爬书旗网小说数据并可视化,通过js逆向对抗网站反爬,想爬啥就爬啥
本文介绍了如何使用Python编写网络爬虫程序爬取书旗网上的小说数据,并通过逆向工程对抗网站的反爬机制,最后对采集的数据进行可视化分析。
1191 109
基于Python 爬书旗网小说数据并可视化,通过js逆向对抗网站反爬,想爬啥就爬啥
|
安全 搜索推荐 Android开发
深入探索安卓与iOS系统的差异及其对用户体验的影响
在当今的智能手机市场中,安卓和iOS是两大主流操作系统。它们各自拥有独特的特性和优势,为用户提供了不同的使用体验。本文将深入探讨安卓与iOS系统之间的主要差异,包括它们的设计理念、用户界面、应用生态以及安全性等方面,并分析这些差异如何影响用户的使用体验。
|
存储 安全
电脑怎么格式化清除所有数据
在出售、捐赠或维修电脑之前或需要处理敏感数据时,格式化硬盘并彻底清除所有数据还是很有必要的。本篇文章将详细介绍如何安全、彻底地格式化你的电脑。
电脑怎么格式化清除所有数据
ly~
|
传感器 存储 供应链
大数据在供应链管理中的具体应用案例
在供应链管理中,大数据的应用显著提升了效率与预测准确性。例如,沃尔玛利用销售数据与外部信息如天气预报,实现精准需求预测,提前调配应急物资,既满足顾客需求又减少库存积压。亚马逊则通过分析商品入库时间、销售速度等数据,优化库存水平,确保畅销品备货充足,小众品库存灵活,从而降低运营成本。DHL借助运输工具上的传感器收集的数据,优化物流路线,避免拥堵并合理装载货物,同时预测设备故障,减少物流延误,提升整体运输效率。
ly~
2044 2
|
网络协议 网络架构
IPv6基础知识
本文档详细介绍了IPv6协议的发展背景及其带来的主要变化,涵盖了IPv6数据报的基本首部和扩展首部结构,以及IPv6地址的表示方法和分类。由于IPv4地址资源有限且设计存在缺陷,IPv6应运而生,解决了这些问题并引入了许多新特性。文档还探讨了IPv6地址的不同类型,如单播、多播和任播地址,并讨论了IPv4向IPv6过渡的策略,包括双协议栈和隧道技术。
984 8
|
人工智能 算法 前端开发
打破传统叙事逻辑,构建基于原子化任务的人机交互
在复杂中后台设计中,为解决配置变更影响多场景问题,提出结合正向和逆向信息架构,采用原子化任务,动态组合任务,降低用户和开发成本,优化体验并改变已有的产品迭代和人机交互模式。未来可能发展为AI自动根据业务规则和用户行为生成最佳方案。
|
监控 网络协议 网络安全
SMTP操作使用详解并通过python进行smtp邮件发送示例
SMTP操作使用详解并通过python进行smtp邮件发送示例
848 3
|
数据处理 C语言 开发者
Filter函数有哪些的高级用法
`filter()`函数是Python中用于从序列中按条件筛选元素的内置函数。它接受一个函数和一个可迭代对象作为参数,返回一个迭代器,该迭代器包含应用函数后返回`True`的元素。基本语法是`filter(function, iterable)`。可以使用`lambda`表达式简化条件,例如筛选偶数:`filter(lambda x: x % 2 == 0, numbers)`。文章还讨论了使用自定义函数、处理多个条件的情况,并对比了`filter()`与列表推导式的用法。
770 3
|
算法 调度 C++
【调度算法】共享函数vs拥挤距离
【调度算法】共享函数vs拥挤距离
516 1

热门文章

最新文章