第二十二章 高级技巧
2015-11-15 21:40:12 0 举报
AI智能生成
第二十二章:高级技巧 在这一章中,我们将深入探讨一些高级技巧,这些技巧需要对前文的知识有深入的理解和实践。首先,我们将讨论如何有效地管理时间,以提高生产力和效率。接着,我们将探讨如何在压力下保持冷静和专注,以及如何处理复杂的问题和决策。最后,我们将介绍一些高级的沟通技巧,包括如何更有效地表达自己的想法和感受,以及如何更好地理解和接纳他人的观点。这些高级技巧不仅可以帮助你在职业生涯中取得成功,也可以让你在日常生活中更加自信和满足。
作者其他创作
大纲/内容
高级函数
安全的类型检测
在值上调用Object原生的toString(),与原生对象的构造函数比较
作用域安全的构造函数
在进行更改前,先确认this对象是正确类型的实例,若不是,则会创建新的实例
惰性载入函数
表示函数执行的分支仅会发生一次,优点是只在执行分支代码时牺牲一点性能
两种方式
1. 在函数被调用时再处理函数
2. 在声明函数时就指定适当的函数
函数绑定
该技巧常和回调函数与事件处理程序一起使用,以便在将函数作为变量传递的同时保留代码执行环境
函数柯里化
用于创建已经设置好了一个或多个参数的函数
基本方法:使用一个闭包返回一个函数
与函数绑定不同点:当函数被调用时,返回的函数需设置一些传入的参数
防篡改对象
不可扩展对象
一般对象都是可扩展的,即任何时候都可以向对象中添加属性和方法
Object.preventExtensions()
调用该方法后,不能再给对象添加属性和方法
在非严格模式下,给不可扩展的对象添加属性/方法会导致静默失败
在严格模式下,给不可扩展的对象添加属性/方法会抛出错误
Object.isExtensible()
该方法用来判断对象是否可扩展,不可扩展则返回 false
密封的对象
密封对象不可扩展,不能删除属性和方法,属性值是可以修改的
Object.seal()
该方法用来密封对象
Object.isSealed()
该方法可确定对象是否被密封了,被密封了则返回true
冻结的对象
冻结的对象既不可扩展,又是密封的,对象数据属性的[[Writable]]特性会被设置为false
Object.freeze()
该方法用于冻结对象
Object.isFrozen()
该方法用于检测冻结对象,冻结则返回false
对JavaScript库而言,冻结对象作用很大,冻结主要的库对象能够防止修改库中的核心对象
注:一旦把对象定义为防篡改,就会无法撤销
高级定时器
重点:指定的时间间隔表示何时将定时器的代码添加到队列,而不是何时实际执行代码
重复定时器
setInterval()缺点
1. 某些间隔会被跳过
2. 多个定时器的代码执行之间的间隔可能会比预期的小
setTimeout()链式调用
优点:在前一个定时器代码执行完之前,不会向队列插入新定时器代码,避免连续运行
Yielding Processes
数组分块可将多个项目的处理在执行队列上分开,避免长时间运行脚本的错误
函数节流
基本思想:某些代码不可以在没有间断的情况连续重复执行
方法:第一次调用函数,创建一个定时器,在指定时间间隔后执行代码;第二次调用该函数,清除前一次的定时器并设置另一个
自定义事件
基本概念:创建一个管理事件的对象,让其他对象监听那些事件
拖放
基本概念:创建一个绝对定位的元素,使其可以用鼠标移动
0 条评论
下一页