
JavaScript学习笔记
文章平均质量分 84
paper_crane
这个作者很懒,什么都没留下…
展开
-
JavaScript事件冒泡,事件捕获,事件处理,事件委托
早期的事件,是作为分担服务器运算负载的一种手段,实文档或者浏览器窗口中发生的一些特定的交互瞬间,如点击按钮,拖放文件等。我们可以使用侦听器来预定事件,当事件发布时候就可作出相应的响应,这种模式称为观察者模型。事件流事件流是从页面接收事件的顺序。在一个html页面中,dom元素组成一颗dom树,由于子元素一般所处的位置都会在父元素之中。那么,当这个子元素被点击时候,可以认为子元素受到了点击,原创 2017-03-16 19:22:33 · 5190 阅读 · 0 评论 -
ES6 Set和Map
SetSet集合是一种无重复元素的列表,通常的用途用以检测给定的元素在某个集合中是否存在ES5模拟Set var set = Object.create(null); set.foo = true; if (set.foo) {} if ('foo' in set) {}ES6里面的SetSet类型是一种有序列表,不会对键进行强制类型转...原创 2018-09-24 20:27:27 · 281 阅读 · 0 评论 -
ES7 Decorator初探
decorator(装饰器)是ES7里面的一个语法糖,作用于类、类属性\方法,为它们提供一个实现与业务逻辑无关的功能的接口。decorator为自定义函数参数:target、key、description 返回值:newDescription/newTarget修饰类参数target为类够构造函数,参数key、description为undefined 若无返回值,则装饰后的类构...原创 2018-08-31 19:31:27 · 856 阅读 · 0 评论 -
JavaScript 函数执行机制(针对ES5)
引子常见问题JavaScript分段执行?怎么分段? JavaScript变量声明提升和函数声明提升具体怎么发生的? 访问变量的规则是怎样的?看例子:var a = 1;function globalFun() { console.log(a); // undefined var a = 2; console.log(a); // 2...原创 2018-07-22 12:23:50 · 272 阅读 · 0 评论 -
高性能JavaScript学习笔记
加载和执行1. script标签会阻塞文档解析和渲染,不会阻塞link标签连接的css文档的加载2. link标签会阻塞在其之后的script标签执行,不阻塞DOM树解析,但阻止渲染。数据存取1. 访问速度最快的是字面量和局部变量,访问数组元素和对象成员比较慢;2. 局部变量处于作用域链的最顶端,访问处于作用域越底部的变量速度越慢;3. 可把常访问的原创 2017-08-23 19:17:15 · 305 阅读 · 0 评论 -
es6 学习笔记
let、const关键字共同点let和const关键词与var都是用来声明变量的,在使用方式上没有什么不同:var varname = 'crane';let username = 'paper_crane';const age = 22;如上例子,varname、username和age都是有效的变量,并且可以通过变量名来访问他们的值。不同点原创 2017-11-10 17:06:20 · 266 阅读 · 0 评论 -
JavaScript执行环境、作用域及this值
执行环境JavaScript的执行环境定义了其中的变量和函数有权访问的其他数据,即规定了在其内部能够访问什么数据。每个执行环境都有一个与之相关联的“变量对象”,环境中定义的变量和函数都保存在这个对象之中,可以理解为环境内的变量和函数都是这个变量对象的属性和方法,但是这个变量对象我们无法通过js访问到。可能这个概念有点难以理解,我们来看看一个例子:全局执行环境是最外围的一个执行环境,在web浏览器中...原创 2017-03-19 10:52:27 · 1116 阅读 · 0 评论 -
js Boolean函数和相等操作符规则
Boolean函数在不同的参数下的返回值:数据类型转换为true的值转换为falseBooleantruefalseString非空字符串“”(空字符串)Number非零数值(包括无穷大)0和NaNObject任何对象nullUndefined----undefi原创 2017-03-01 22:56:59 · 3860 阅读 · 0 评论 -
跨浏览器鼠标事件写法
以下兼容性代码实例来自《JavaScript高级程序设计》第三版,测试代码由本人编写:var EventUtil = { // 添加绑定事件 // 第一个条件兼容dom2级事件,可为同一个事件(如click)添加多个响应函数 // 第一个条件兼容IE,IE没有事件捕获,只有事件冒泡 // 第三个条件是dom0级事件,最原始的事件,同一事件只能有一个响应函数原创 2017-03-16 00:42:35 · 332 阅读 · 0 评论 -
JavaScript检测类型
由于刚才参加了一个公司的在线笔试,在检测类型这方面出了点小乱子,所以写篇文章做个笔记。typeof操作符ES有五种简单的数据类型:Undefined,Null,Boolean,Number和String,还有一种复杂的数据类型Object。对一个值使用typeof操作符可能返回下列某些字符串:“undefined”——如果这个值未定义;“boolean”——如果原创 2017-03-18 20:29:13 · 372 阅读 · 0 评论 -
JavaScript Array类型
JavaScript中,Array是最常用到的数据类型之一,属于引用类型中的一种。由于数组类型实在太常用而我记性又不是很好,就写一篇博文做个笔记。创建数组:创建数组即可使用构造函数,也可使用数组字面量的方法var students = new Array(); // 创建一个空数组var students = new Array(5); // 创建一原创 2017-03-23 10:33:19 · 361 阅读 · 0 评论 -
JavaScript 函数
在JavaScript中,函数其实也是一个对象,每个函数都是Function类型的实例,而且和引用类型一样具有属性和方法。由于函数是对象,所以函数名也只是一个指向函数对象的指针,不与某个函数绑定。原创 2017-03-29 19:24:51 · 288 阅读 · 0 评论 -
JavaScript 原型继承
原型链基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。function SuperType() { this.property = true;}SuperType.prototype.getSuperValue = function() { return this.property;};function SubType() { this.su原创 2017-04-10 20:48:31 · 348 阅读 · 1 评论 -
JavaScript 创建对象
工厂模式工厂模式抽象了创建具体对象的过程,能够快速创建大量具有相似属性及方法的对象。function createPerson(name, age, job) { var obj = {}; obj.name = name; obj.age = age; obj.job = job; obj.sayName = function() { aler原创 2017-04-13 20:43:41 · 354 阅读 · 0 评论 -
JavaScript 对象
本篇博文主要记录一些对象的使用方法和操作,至于对象的声明和继承请看:《JavaScript 创建对象》、《JavaScript 原型继承》对象字面量创建对象一个对象字面量就是包围在一对花括号中的零或多个“键/值”对。键名(属性名)可以是包括空字符串在内的任何字符串,如果属性名是一个合法的JavaScript标识符,则不强制要求用引号括住属性名;用逗号来分隔多个“键/原创 2017-04-19 22:17:03 · 324 阅读 · 0 评论 -
ES6 函数
默认参数示例 // 当没有传入足够的参数时,会使用默认参数,如无默认参数,则为undefined function test(arg1, arg2 = '', arg3 = 0, arg4) {}对于默认参数值,null是一个合法值ES5下函数arguments的特性 // 非严格模式 function mixArgs(first, second...原创 2018-09-30 17:18:36 · 503 阅读 · 0 评论