JavaScript笔记
文章平均质量分 73
沐风的心
热爱前端的开发者
展开
-
JS入门教程
1、用JS做一个效果的步骤:a)先进行布局;b)思考实现原理;c)了解JS的语法(可以给需要做效果的整体元素加JS语句,这样可以保持元素的整体性,不至于效果只在元素内部的某一部分)。2、JS中获取元素的基本方法:通过ID名称来获取元素,代码为:a)document.getElementById('link');(意为document get element by id 'lin原创 2016-03-26 10:31:09 · 1017 阅读 · 0 评论 -
详谈 JavaScript 数组去重 1 :实现篇
重要申明:感谢原文作者——toobug,与看原文请猛戳这里!我只是个转载者!零、引言JavaScript 的数组去重是一个老生常谈的话题了。随便搜一搜就能找到非常多不同版本的解法。昨天在微博上看到一篇文章,也写数组去重,主要推崇的方法是将利用数组元素当作对象 key 来去重。我在微博转发了“用对象 key 去重不是个好办法…”然后作者问什么才是推荐的方法。细想一下,这样一个看似简单的需求,如果要做到转载 2017-03-21 22:01:18 · 399 阅读 · 0 评论 -
详谈 JavaScript 数组去重 2 :性能优化篇
重要申明:本文来源于 玉伯也叫射雕,想看原文的请戳这里 !在此文之上,我对一些明显不妥之处进行了修正。这其中包括例子的不合理,文章的错别字等,还望见谅!一、缘由JavaScript 数组去重经常出现在前端招聘的笔试题里,比如: 有数组 var arr = ['a', 'b', 'c', '1', 0, 'c', 1, '', 1, 0] ,请用 JavaScript 实现去重函数 unique,转载 2017-03-31 16:11:11 · 895 阅读 · 0 评论 -
事件委托
一、CSS盒模型关于CSS盒模型和兼容的东西,可以狠戳这里!二、事件代理1. 基本用法:element.addEventListener('click', function(event) { // 判断是否是 a 节点 if ( event.target.tagName == 'A' ) { // a 的一些交互操作 }}, false);2. 为什么不用第原创 2017-03-31 14:38:00 · 566 阅读 · 0 评论 -
copyWithin的call调用实例——关于this
学习过JS的朋友,如果你想对call、apply和bind方法有更深切的了解,可以看看这篇文章。废话不多说,我们直接上代码:[].copyWithin.call({length: 5, 3: 1}, 0, 3);// { 0: 1, 3: 1, length: 5}copyWithin()方法会浅拷贝数组的部分元素到同一数组的不同位置,且不改变数组的大小,返回该数组。如果,对这条ES6语法不熟悉的原创 2017-01-15 14:38:08 · 1155 阅读 · 0 评论 -
hasOwnProperty() 、in 操作符与 for-in 循环
1. hasOwnProperty()使用 hasOwnProperty() 方法可以检测一个属性是存在于对象实例中,还是存在于其原型中。这个方法(不要忘了它是从 Object 继承来的)只在给定属性存在于对象实例中时,才会返回 true 。请看下面的示例代码:function Person(){}Person.prototype.name = "Nicholas";Person.prototy原创 2017-07-17 16:25:43 · 1252 阅读 · 0 评论 -
15 分钟全方位了解 JS 的继承
许多 OO 语言都支持两种继承方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。由于 ECMAScript 中的函数没有签名,所以在 JS 中无法实现接口继承。ECMAScript 只支持实现继承,而且其实现继承主要是依靠原型链来实现的。所以,下面所要说的原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承和寄生组合式继承都属于实现继承。最后的最后,我会解释 E原创 2017-07-20 20:42:18 · 383 阅读 · 0 评论 -
同源策略与跨域
在浏览器中,有一个很重要的安全性限制,被称为 “Same-Origin Policy”(同源策略)。通过 XHR 实现 Ajax 通信的一个主要限制,就来自与同源策略。即默认情况下,XHR 对象只能访问与包含它的页面位于同一个域中的资源。然而,当进行一些比较深入的前端编程的时候,不可避免地需要进行跨域操作。这时候“同源策略”就显得过于苛刻,于是,就需要进行跨域访问数据了!一、同源策略?同源策略(Sa原创 2017-07-26 13:16:17 · 539 阅读 · 0 评论 -
CSS动画 vs JS动画:谁更快?
重要申明:感谢翻译者——MZhou,想看翻译原文请戳这里!我只是个转载者!转载过程中有些翻译,我在看了英文原文之后,用了在我看来更为舒服的表达,望请勿怪!这篇文章翻译自 Julian Shapiro 的 CSS vs. JS Animation: Which is Faster?。Julian Shapiro 也是 Velocity.js 的创造者。这是一个非常高效、简单易用的JS动画库。他在Web转载 2017-03-13 22:15:39 · 1011 阅读 · 0 评论 -
异步编程中的异常处理
此文为转载的,感谢原文作者——syaning!一、引言一般情况下,我们会使用try..catch..来进行异常处理,例如:function sync() { throw new Error('sync error');}try { sync();} catch (err) { console.log('error caught:', err.message);}// e转载 2017-02-26 19:56:26 · 3074 阅读 · 0 评论 -
function与感叹号
重要申明:感谢原文作者的这篇文章,我只是个转载者!不过,我经过了一些错误修改和重新排版,望请勿怪!一、What?!最近有空可以让我静下心来看看各种代码, function 与感叹号的频繁出现,让我回想起2个月前我回杭州最后参加团队会议的时候,@西子剑影 抛出的一样的问题:如果在 function 之前加上感叹号 (!) 会怎么样?比如下面的代码:!function(){alert('iifksp')转载 2017-03-17 21:09:02 · 369 阅读 · 0 评论 -
属性操作、图片切换笔记
1. HTML属性操作:读和写。标签内的属性包括:属性名、属性值。2. 属性的读操作:获取或者说找到的功能。使用方法:元素.属性名。3. 具体频繁的应用有:字符串连接。使用方法:属性名称 + 字符串 + 属性名称,但实际上是利用属性名称表示属性值。如此的显示效果就是属性值与字符串之间的连接。4. 属性的写操作:替换或者说是修改的功能。使用方法:元素.属性名 =原创 2016-03-26 10:51:18 · 716 阅读 · 0 评论 -
JS中==、===和Object.is()的区别
首先,先粗略了解一下这三个玩意儿:==:等同,比较运算符,两边值类型不同的时候,先进行类型转换,再比较;===:恒等,严格比较运算符,不做类型转换,类型不同就是不等;Object.is()是ES6新增的用来比较两个值是否严格相等的方法,与===的行为基本一致。下面分别详细说明一下这三个玩意儿:先说===,这个比较简单,只需要利用下面的规则来判断两个值是否恒等就行了:如果类型不同,就不相等原创 2017-01-15 15:40:50 · 7029 阅读 · 0 评论 -
尾递归以及在浏览器中的实现
尾递归以及在浏览器中的实现这是阮一峰大神的《ES6标准入门》一书中写道的,没看过这节的童鞋可以狠戳这里。当时我就很不理解:除了最后一次调用不是尾递归,其余 y 大于 0 的时候,都是尾递归;那么,按照书“尾调用优化”上所说的,尾递归本身已经是“尾调用优化”过了,为什么还没报Uncaught RangeError: Maximum call stack size exceeded(…)——调用栈溢出这原创 2017-01-15 17:50:47 · 1063 阅读 · 0 评论 -
ES6语法摘要一
声明const是声明不变变量的一种更好的方式。 const和let并不是函数作用于的,而是块级作用域!这种经典的作用于分离帮我们避免了不可预期的bug。Array.prototype.map()map这个方法接收一个函数作为参数。这个数组中每一个元素都会调用这个函数,并且返回一个这个函数处理后的值,并将这些值依次作为一个新的数组的值。Arrow functions/this使用传统的JS原创 2017-01-18 22:59:58 · 372 阅读 · 0 评论 -
深入浅出Javascript中apply、call和bind以及它们的妙用
此文为转载的,感谢原文作者——chokcoco(伯乐在线),原谅我做了一些纠正和改动。因为此文确实很优秀,所以我冒着风险转载了过来。如果,有任何觉得我有侵权行为,我立马删除文章!一、引言这篇文章实在是很难下笔,因为网上相关文章不胜枚举。巧合的是前些天看到阮老师的一篇文章的一句话:“对我来说,博客首先是一种知识管理工具,其次才是传播工具。我的技术文章,主要用来整理我还不懂的知识。我只写那些我还没有完全转载 2017-03-01 20:06:08 · 550 阅读 · 0 评论 -
ES6语法摘要二
这些内容是我学习《fullstack-react-book》一书,自己翻译整理出来的要点。JSONJSON代表了JavaScript对象标记(JavaScript Object Nation)。JSON能够让我们加载一个JavaScript对象,并且我们能在一个text文件里面进行读写。三元运算符也叫“三目运算符”,语法:condition ? expression1 : expression原创 2017-01-23 23:26:31 · 431 阅读 · 0 评论 -
运用 JS 中的各种模式创建自定义类型
虽然在 ES6 中,已经出了 class 的语法糖,貌似好像不用了解 ES5 中的这些老东西了,但是越深入学习,你会发现理解这些模式的重要性。在本文中,我会描述 7 种常用的创建自定义类型的模式:工厂模式、构造函数模式、原型模式、组合使用构造函数模式、动态原型模式、寄生构造函数模式、稳妥构造函数模式。分别给出他们的示例代码,并分析他们的利弊,方便读者选择具体的方式来构建自己的自定义类型。1. 工厂模原创 2017-07-17 20:44:27 · 1282 阅读 · 0 评论