javascript实现类

2020-02-28

在面向对象语言诸如java中,我们经常能看到class也就是类,而在JavaScript中,我们也可以实现类

跨域问题解决与具体实现

2020-02-20

同源策略限制

跨域指的是当两个url的协议,域名,端口三者有一个不同,就会发生跨域。之所以会有跨域,是因为浏览器的同源策略限制。
同源策略限制了一个源的脚本与另一个不同源的脚本之间的交互,这是一种安全保障机制。
是否同源的判断,只要看两个源的url端口和域名是否相同,只要有一个不同,那就是不同源。

js内存泄漏及垃圾回收

2020-02-20

内存泄漏

定义


我们知道,程序的运行需要操作系统或者运行时提供内存,而对于持续运行的程序,内存会被持续占用,适时地回收当前不执行的程序占用的内存是很重要的,没有及时地回收内存,轻则造成系统性能变差,重则进程崩溃

那么,什么是内存泄漏呢,简单来说,内存中的某个空间被占用,在应当回收的时间没有被回收,就算是内存泄漏了

JavaScript文档碎片的使用

2020-01-27

JavaScript中,文档碎片独立于DOM树之外,存在于内存中,在创建之初为一个空白的文档片段,我们可以使用createDocumentFragment来创建

ES7,ES8,ES9,ES10新特性笔记

2020-01-20

JavaScript到现在更新了很多次,最大的一次变动是ES6,也因此我们经常会在面试的时候看到需要掌握ES6,而实际上,ES6已经是2015年的事情了,现在已经到了ES2019即是ES10,即将ES2020就出来了,所以有必要将这些内容整理一下了

BigInt类型笔记整理

2020-01-20

BigInt


在ES10之前,JavaScript已经有6种基本类型了,而ES10带来了第七种数据类型BigInt
在MDN上看到关于BigInt的描述

BigInt is a built-in object that provides a way to represent whole numbers larger than 2**53 - 1, which is the largest number JavaScript can reliably represent with the Number primitive.
BigInt可以描述比原来JavaScript可以描述的数更大的数

JavaScript模块化(三)AMD

2019-08-14

AMD(Asynchronous Module Definition)

介绍


AMD也是一个模块化的规范,它以require.js为基础,每个文件代表一个模块,与CommonJS不同的是,AMD是一个异步模块实现规范,且AMD更加侧重于浏览器,在运行时通过提前加载依赖,等到依赖加载完成再实现对应的方法来保证方法的正确实现。

JavaScript模块化(五)各种规范的比较CommonJS,AMD,CMD,ES Module

2019-08-13

在对几种模块规范的复习后,总结一下规范的区别和关系
CommonJSAMDCMDES Module

偏向性


虽然对于这四个规范来说,都可以在浏览器端和服务器端运行,但除了ES Module外,其他都具有一定的偏向性

JavaScript模块化(四)CMD

2019-08-13

CMD(Common Module Definition)

介绍


CMD依赖于sea.js,在语法上杂糅了CommonJS和AMD,可以同时使用同步加载和异步加载,适用于web浏览器端模块,同样的,在CMD中,一个文件代表一个模块
现在CMD似乎是被国外收购了,登上seajs.org会显示以下的内容

JavaScript模块化(二)CommonJS

2019-08-13

介绍


CommonJS提出JavaScript不仅针对浏览器,它做为一个规范,在服务器端被广泛使用,最常见到的就是node中的使用
事实上,node就是基于CommonJS规范来写的,在CommonJS规范中,每个js文件作为一个模块,CommonJS在服务器端和浏览器端的加载是不一样的