CodingWithAlice

我的一方小天地,如果对你有帮助,那真的太好了

观察者模式

观察者模式 手动实现 EventEmitter // addListener(event, listener) 为指定事件添加一个监听器,默认添加到监听器数组的尾部。 // removeListener(event, listener) 移除指定事件的某个监听器,监听器必须是该事件已经注册过的监听器。它接受两个参数,第一个是事件名称,第二个是回调函数名称。 // once(event, ...

数组乱序 洗牌算法

数组乱序 洗牌算法 从最后一个元素开始,从数组中随机选出一个位置,交换,直到第一个元素。 function disorder(arr){ let cur = arr.length - 1; while(cur >= 0) { let random = parseInt(Math.random() * arr.length); [ar...

第十七章 事件

​ 最常见的事件是在 DOM3 Events 规范或 HTML5 中定义的。 ​ 围绕着使用事件,需要考虑内存与性能问题。例如:最好限制一个页面中事件处理程序的数量,因为它们会占用过多内存,导致页面 响应缓慢。 ​ 利用事件冒泡,事件委托可以解决限制事件处理程序数量的问题。 ​ 使用 JavaScript 也可以在浏览器中模拟事件。

第十六章 DOM2和DOM3

​ DOM2 规范定义了一些模块,用来丰富 DOM1 的功能。DOM2 Core 在一些类型上增加了与 XML命名空间 有关的新方法。这些变化只有在使用 XML 或 XHTML 文档时才会用到,在 HTML 文档中则没有用处。DOM2 增加的与 XML 命名空间无关的方法涉及以编程方式创建 Document 和 DocumentType类型的新实例。 ​ DOM2 Style 模块定义...

第十四章-第十五章 DOM、DOM扩展

第十四章 DOM ​ 文档对象模型(DOM,Document Object Model)是语言中立的 HTML 和 XML 文档的 API。 DOM 由一系列节点类型构成,主要包括以下几种: Node 是 基准节点类型,是文档一个部分的抽象表示,所有其他类型都继承 Node。 Document 类型表示整个文档,对应树形结构的 根节点。在 JavaS...

怎么实现跨域

怎么实现跨域 一、定义 指的是 浏览器 不能执行其他网站的脚本。浏览器执行javascript脚本时,会检查这个脚本属于哪个页面,如果不是同源页面,就不会被执行。(同源策略) 跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了。 同源策略 定义:同源策略是一种用于限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互的安...

jQuery相关

jQuery相关 1、jQuery中绑定事件用的on和bind有什么区别? bind(type, [data], fn)//解绑用unbind on(type,[selector],[data],fn)//解绑用off 区别在于:是否支持selector这个参数值。 ​ 由于javascript的事件冒泡特性,如果我们在父元素上注册了一个事件处理函数,当子元素上发生这个事件的时候,...

第十二章 BOM 小结

​ BOM-浏览器对象模型,以 window 对象为基础 - window 对象也被复用为 ECMAScript 的 Global 属性。 通过 location 对象可以以编程方式 操纵浏览器的导航系统。通过设置这个对象上的属性,可以改变浏览器 URL 中的某一部分或全部。 详细请看 第一章小结 使用setTimeout模拟setInterval function fa...

第十一章 期约与异步函数 小结

​ 随着 ES6 新增了 期约 和 ES8 新增了异步函数,通过期约和 async/await,不仅可以实现之前难以实现或不可能实现的任务,而且也能写出更清晰、简洁,并且容易理解、调试的代码。 期约:主要功能是为异步代码提供了清晰的抽象(主要用于需要 串行异步代码:序列化、连锁使用、复合、扩展和重组) 可以用期约表示异步执行的代码块 也可以用期约表示...

JS设置CSS样式的几种方式

JS设置CSS样式的几种方式 直接设置style的属性( 某些情况用这个设置 !important值无效 element.style.height = '100px'; /* 如果属性有'-'号,就写成驼峰的形式(如textAlign) 如果想保留 - 号,就中括号的形式 element.style['text-align'] = '100px';*/ 直接设置属...