随笔分类 - JS
摘要:1.为 Array 对象添加一个去除重复项的方法 示例: 输入: [false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN] 输出: [false, true, undefined, null, NaN, 0, 1, {}, {}
阅读全文
摘要:转自:https://www.imooc.com/article/20057 很清楚明白的帮我理顺了思路。 随着前端js代码复杂度的提高,JavaScript模块化这个概念便被提出来,前端社区也不断地实现前端模块化,直到es6对其进行了规范,下面就介绍JavaScript模块化。 JavaScrip
阅读全文
摘要:转自:https://github.com/daijingfeng/blog/issues/2 讲的很详细很好,我也每个例子都有验证,便于日后翻阅。 JavaScript中的this实际上是在函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用。 先来列举一下都有哪些函数调用方式: 普通函数
阅读全文
摘要:参考牛客网上面的解析 (1)给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。 思路:已知二叉搜索树的中序遍历就是有序序列,因此使用中序遍历思想,访问第K个结点即为所求的第K大的结点。 /* functio
阅读全文
摘要:(1) 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路:首先找到A中结点的值与B相等的结点,然后从这两个相同的结点出发,判断是否存在重合,若是返回true。否则,在树A的左右子树中寻找与B结点值相同的结点,以这些结点出发递归判断是否是A的子树。 /*
阅读全文
摘要:下面是做剑指offer中,链表系列题的总结,参考答案如下: (1)输入一个链表,从尾到头打印链表每个节点的值。 思路:用一个数组来接收打印的链表,链表的结构已经给出。 /*function ListNode(x){ this.val = x; this.next = null; }*/ functi
阅读全文
摘要:(1)请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 function replaceSpace(str) { // write code here str=str.replace(/\s/g
阅读全文
摘要:转自:http://www.cnblogs.com/hateyoucode/archive/2009/12/09/1620050.html 一.谈Ajax的Get和Post的区别 Get方式: 用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送)
阅读全文
摘要:二路归并排序主要运用了“分治算法”,分治算法就是将一个大的问题划分为n个规模较小而结构相似的子问题。 这些子问题解决的方法都是类似的,解决掉这些小的问题之后,归并子问题的结果,就得到了“大”问题的解。 二路归并排序主旨是“分解”与“归并”。 下面是参考《高性能JavaScript》中的代码: 这段代
阅读全文
摘要:虽然在ES6中有了继承,使用extends关键字就能实现。本篇讲的不是这种,而是ES6之前的几种实现继承的方式。 (一)原型链 ECMAScript中将原型链作为实现继承的主要方法。其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。(不理解原型链的童鞋们可以翻阅一下我之前的博客,里面
阅读全文
摘要:最近重温了一遍红皮书,发现这本书中的很多知识点,属于耐看型的,每次都有不一样的收获。下面是对创建对象几种模式的总结。 构造函数或对象字面量都可以用来创建单个对象,但这些方式有很大的缺点:使用同一个接口创建很多对象,会产生大量的重复代码。 下面主要介绍创建对象的几种模式: (一)工厂模式 工厂模式抽象
阅读全文