
javascript
田小思
奋斗在路上
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
利用canvas绘制一个简单时钟
首先在主页面中构建基本框架,其实只有一个时钟也没有什么框架啦 canvas clock div{ text-align: center; margin-top: 250px; } #clock{ border: 1px solid #ccc; } ---------------------------------------原创 2016-11-18 20:22:48 · 3871 阅读 · 1 评论 -
js模拟实现一个Set集合
集合是由一组无序且唯一(即不能重复)的项组成的。add(value):向集合添加一个新的项。delete(value):从集合移除一个值。has(value):如果值在集合中,返回true,否则返回false。clear():移除集合中的所有项。size():返回集合所包含元素的数量。与数组的length属性类似。values():返回一个包含集合中所有值的数...原创 2019-04-19 15:02:19 · 2520 阅读 · 0 评论 -
js模拟实现call,apply,bind
Function.prototype.call()语法fun.call(thisArg, arg1, arg2, …)参数thisArg在fun函数运行时指定的this值。需要注意的是,指定的this值并不一定是该函数执行时真正的this值,如果这个函数处于non-strict mode,则指定为null和undefined的this值会自动指向全局对象(浏览器中就是wind...原创 2019-03-06 15:03:19 · 3342 阅读 · 2 评论 -
JavaScript手写Promise
Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及其返回的值。Promise 对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。它允许你为异步操作的成功和失败分别绑定相应的处理方法(handlers)。 这让异步方法可以像同步方法那样返回值,但并不是立即返回最终执行结果,而是一个能代表未来出现的结果的promise对象一个 Promise有...原创 2019-02-14 17:44:25 · 434 阅读 · 0 评论 -
JavaScript中数组去重
JavaScript数组的几种去重方式原创 2018-07-23 13:20:45 · 178 阅读 · 0 评论 -
JavaScript数组的5种迭代方式
every() : 对数组中的每一项运行给定的函数,如果该函数对每一项都返回true,则返回true。 filter() : 对数组中的每一项运行给定的函数, 返回该函数会返回true的项组成的数组。forEach() : 对数组中的每一项运行给定的函数。这个方法没有返回值。 map() : 对数组中的每一项运行给定的函数, 返回每次函数调用的结果组成的数组。 some() : 对数组中的每一项运行给定的函数,如果该函数对任一项返回true原创 2018-06-19 19:24:43 · 378 阅读 · 0 评论 -
JavaScript中设计模式
这种模式抽象了创建具体对象的过程,使用同一个接口可以创建很多对象,减少大量的重复代码。工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题,为了解决这个问题,soga 构造函数模式出现。构造函数虽然好用,但是构造函数中的每个方法都要在每个实例上重新创建一遍。如上person1和person2都有一个sayName()的函数,因此每定义一个函数,就实例化了一个对象(在JavaScript中函数就是对象)。为了解决这个问题,所以又有了原型模式。原创 2018-06-22 17:56:54 · 223 阅读 · 0 评论 -
JS写一个按照下面方式调用都能正常工作的 sum 方法
js写一个按照下面方式调用都能正常工作的 sum 方法console.log(sum(2,3)); // Output 5console.log(sum(2)(3)); // Output 5原创 2018-05-14 09:59:57 · 884 阅读 · 0 评论 -
JavaScript实现排序和搜索
冒泡排序: 比较任何两个相邻的元素, 如果第一个比第二个大则交换他们。 时间复杂度: 最好:O(n), 一般情况: O(n2) 最差情况: O(n2) |(n的平方)选择排序:找到数据结构中的最小值并且放在第一位,接着找到第二小的值放在第二位,依次类推插入排序: 每次排一个数组,以此方式构建组最后的排序数组。首先把要比较的一项放在临时变量temp中拿第二项和第一项比较如果第一项大于第二项则交换,然原创 2017-11-27 18:34:12 · 321 阅读 · 0 评论 -
JavaScript实现一个简单数据结构树
我们开始之前首先介绍一下关于二叉树和二叉搜索树二叉树中的节点最多只能有两个子节点:一个是左侧的子节点,另一个是右侧的子节点。二叉搜索树是二叉树的一种,但是它只允许你在左侧的节点存储比父节点小的值,在右侧的节点存储比父节点大的或者相等的值。 如下图 首先,声明它的结构:function BinarySearchTree() { var Node = function(key){原创 2017-11-02 18:09:32 · 779 阅读 · 1 评论 -
JavaScript实现一个简单数据结构栈
我们将创建一个类来表示栈。首先声明这个类: 接着我们需要一种数据结构来保存栈中的元素。可以选择数组,接下来,为我们的栈声明一些方法。push(element): 添加新元素到栈顶pop(): 移除栈顶的元素, 同时返回被移除的元素。peek(): 返回栈顶元素,不对栈元素做任何修改。原创 2017-09-27 18:15:32 · 373 阅读 · 0 评论 -
Jquery 实现的2048小游戏
通过这几天的学习利用Jquery实现了一个2048小游戏,在这个游戏中主页面实现基本框架, supportww2048.js实现基本的支撑部分, showanimation.js实现基本的动画逻辑, main.js实现基本的控制部分。实现完成之后的效果如下提供链接可以亲自体验一下http://tianjianen.droppages.com/下面来看代码:index原创 2016-12-31 10:30:28 · 1877 阅读 · 0 评论 -
令我猝不及防的undefine和null
Javascript有两个“空值”用来表示信息缺失,undefined和null。undefined表示“没有值”(既不是原始值也不是对象)。访问未初始化的变量,缺失的参数,以及缺失的属性会返回这个空值。并且如果函数中没有任何显式的返回值时,则会隐式的返回undefined。Null 的意思是“没有对象”。在用到对象的时候它表示空值(比如参数,对象链中的最后一个元素等)。undefin原创 2017-03-25 21:57:08 · 869 阅读 · 0 评论 -
JavaScript在DOM中插入一个新元素
在已有元素前面插入一个新元素DOM提供了名为insertBefore()这个方法,这个方法将把一个新元素插入到一个现有元素的前面。在调用次方法时,你必须告诉它三件事。(1) 新元素: 你想插入的新元素(newElement)。(2) 目标元素: 你想把这个新元素插到哪个元素(targetElement)之前。(3) 父元素: 目标元素的父元素(parentElem原创 2017-02-28 11:24:05 · 6046 阅读 · 0 评论 -
最详尽的 JS 原型与原型链终极详解,没有「可能是」。(一)
第二篇已更新,点击进入第三篇已更新,点击进入三篇文章都更新完毕,完整的剖析了 JS 原型与原型链,希望通过这些教程能让你对 Javascript 这门语言理解的更透彻!一. 普通对象与函数对象JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object ,Function 是 JS 自带的函数对象。下面举例说明var o1转载 2017-01-08 17:07:30 · 750 阅读 · 0 评论 -
网页选项卡的应用
(1)功能描述在页面中,设置三个不同名称的选项卡,当点击某个选项卡时,下面的相对应的区域显示其相应的内容信息, 同时选项卡的背景色与内容区域的背景颜色浑然一体, 并且字体加粗,表示选中的状态。(2)代码实现 网页选项卡的应用 body{ font-size: 12px; } ul, li{ margin: 0; padding:0原创 2016-12-21 17:34:57 · 634 阅读 · 0 评论 -
JS实现对象的深拷贝
var obj ={ a:1, b:{ C:2 }, d: [3,4,5] };function Clone(obj){ if(!obj || (typeof obj !== 'object')){ return; } var newObj = Object.prototype.toString.call(obj) == '...原创 2019-06-30 15:02:25 · 336 阅读 · 0 评论