摘要:
JavaScript表达式分为原始表达式和复杂表达式 原始表达式 原始表达式是表达式的最小单位,所以它不再包含其他表达式。原始表达式包括this关键字、标识符引用、字面量引用、数值初始化、对象初始化和分组表达式。 this关键字 this // 返回当前对象 标识符 bar; // 返回变量bar的 阅读全文
摘要:
基本概念 JavaScript是一种动态的弱类型解释性语言,语法借鉴了Java,Java是一种静态的强类型解释型语言。JavaScript由ECMAScript、DOM和BOM三部分组成,主要用于实现网页的动态效果、人机交互,当然现在它的能力远不止这些了。 ECMAScript由ECMA-262定义 阅读全文
摘要:
定义 标识符(Identifier)是一个名字,用来对变量、函数、属性、参数命名,或某些循环语句中跳转位置的标记。变量是标识符的一种。 变量的特性 JavaScript中的变量是弱类型的,也叫松散类型的,它可以用来保存任何数据类型。JavaScript是一种动态语言,在运行期间才做数据类型的检查,所 阅读全文
摘要:
"参考链接" 核心函数 js / 图片预加载 @return {function} imgList 需要预加载的图片地址 callback 图片加载完成后的回掉,可获取到加载进度值 timeout 图片加载等待时间 / (function() { var loader = function(imgL 阅读全文
摘要:
"参考链接" 好处是可以自定义动画效果,用起来很方便,以上代码直接复制是可以运行的 阅读全文
摘要:
跨网络异步获取资源的功能以前是使用XMLHttpRequest对象实现的,Fetch API提供了更好的替代方案,可以很容易的被其他技术使用(如Servise Workers) Fetch API提供了一个全局的fetch()方法,这个方法提供了一种简单的、合乎逻辑的方式来跨网络异步获取资源。fet 阅读全文
摘要:
焦点元素 通常情况下,只有可交互的元素能够获取焦点,比如表单元素、超链接。如果要让不可交互元素获得焦点,需要做特殊处理:先将tabIndex属性设置为-1,再调用focus()方法 <div id="test" style="height:30px;width:100px;background:te 阅读全文
摘要:
数组 数组是最简单的内存数据结构,由于其简单性和灵活性,很多编程语言都内置数组,JS当然也支持。关于数组的介绍可参考以下文章 数组基础学习 数组方法学习 栈 栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的 同一端,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶 阅读全文
摘要:
静态属性和方法:对象自身的属性和方法,实例无法访问 公有属性和方法:实例继承的属性和方法 私有属性和方法:对象外部无法访问的属性和方法 特权方法:可以访问私有、公有属性和方法 function People() { this.name = 'wmui'; // 公有属性 // 私有属性和方法 let 阅读全文
摘要:
链表存储有序的元素集合,链表中的元素在内存中不是连续放置的,每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成。下图展 示了一个链表的结构: 相对于传统的数组,链表的一个好处在于,添加或移除元素的时候不需要移动其他元素,只需要找到指针的位置。而数组添加元素和移除元素,需 阅读全文
摘要:
集合是由一组无序且唯一(即不能重复)的项组成的数据结构,可以把集合想象成一个既没有重复元素,也没有顺序概念的数组。在数学中,集合是一组不同的对象(的集),并且有并集、交集、差集等基本操作。 ES6提供了Set对象用于表示集合,关于Set对象的基本操作可[移步于此](https://blog.8688 阅读全文
摘要:
集合、字典和散列表都可以存储不重复的值。在集合中,存储的是每个值本身。而在字典中,存储的是键值对(也称作字典映射)。在散列表中存储的也是键值对(也称作散列映射),但是两种数据结构的实现方式略有不同 ### 字典 ES6提供了Map类,也就是上面说的字典,Map类的具体操作可[移步至此](https: 阅读全文
摘要:
树的相关术语 树是一种分层数据的抽象模型,一个树结构包含一系列存在父子关系的节点,每个节点都有一个父节点(除了顶部的第一个节点)以及零个或多个子节点: 根节点:位于树顶部的节点叫作根节点(11) 内部节点:至少有一个子节点的节点称为内部节点(7、5、9、15、13、20) 外部节点:没有子元素的节点 阅读全文
摘要:
冒泡排序 冒泡排序是最简单的一种排序算法,同时也会效率最低的,因此在开发中很少使用这种算法进行排序 冒泡排序通过比较任何两个相邻的项,如果第一个比第二个大,则交换它们,元素项向上移动至 正确的顺序,就好像气泡升至表面一样,因此叫冒泡排序。 假设有一组数据[5,4,3,2,1],使用冒泡排序的比较过程 阅读全文
摘要:
算法复杂度用于衡量算法的效率,用大O来表示。使用大O表示法分析算法复杂度时,时常遇到以下几类函数 ![](https://cdn.86886.wang/blog/1539150771021.png) #### O(1) ```js function increment(num){ return ++ 阅读全文
摘要:
私有属性和方法 在es6中,官方并没有为类规定私有属性和方法,传统的做法是使用'_'开头的公有属性和方法来表示 class Person { constructor(age) { this._age = age; // 私有属性 } _sayAge() { // 私有方法 return this._ 阅读全文
摘要:
Unit testing(单元测试) 单元测试往往只关注于一个代码片段,通常是一个模块或函数,测试代码应该比较简单,可以快速实现和运行。这也意味着你会写很多的单元测试用例来保证代码的功能正常。单元测试应该没有什么依赖,比如通过网络请求获取数据库数据。单元测试的基本原则就是:多个测试用例,每个测试不同 阅读全文
摘要:
Windows 开发: 主要是开发客户端(PC 机上的软件),如 QQ、迅雷、360、Chrome 等。 能够进行 Windows 客户端开发的编程语言有多种,包括 C/C++、C#、VB、Java、Delphi、易语言等。这意 味着,Windows 开发有多种学习路线,大家任选其一。不过,公司一般 阅读全文
摘要:
var obj = { 1: 'a', 3: 'c', 2: 'b', } for (const key in obj) { console.log(key) } // '1' '2' '3' 原因:for-in在遍历时,先遍历出整数属性(integer properties,按照升序),然后其他属 阅读全文
摘要:
Array(3).join(',').split(','); Array(3).fill(''); [...Array(3)]; Array(3).fill('').map((item, index) => index); // [0, 1,,2] 阅读全文