ECMAScript
文章平均质量分 62
MirrorAvatar
这个作者很懒,什么都没留下…
展开
-
ECMAScript Hoisting和“先有鸡还是先有蛋”
代码很简单,但是有个很有趣的东西。 我们都知道:JavaScript代码是由上而下,逐行解释执行的。 那么先看这段代码:a = 2;var a;console.log( a );控制台上会输出什么?或许你会觉得是输出个undefined ,因为a定义声明是在a=2这个赋值声明之后的,console.log(a)的时候,a是没有赋值的,所以是undef...2015-02-01 15:58:07 · 110 阅读 · 0 评论 -
ECMAScript的typeof操作符
1.typeof操作符的基本概念typeof操作符是干什么用的?用于检测给定变量的数据类型。为什么要检测?因为ECMASCript是松散类型的,变量可以存放任何数据类型的值。2.typeof操作符基本用法返回的字符串值返回值意义"undefined"变量值未定义,变量值等于undefined"boolean"变量值的类型是Boolean类型,布...原创 2015-03-02 15:57:13 · 138 阅读 · 0 评论 -
ECMAScript的三大布尔操作符
三大布尔操作符:非(NOT)、与(AND)和或(OR)。运算规则和数学中的非与或一样。1.逻辑非(!)操作原理:首先会将它的操作数转换为一个布尔值,然后再对其求反。转换规则参考:Boolean类型两次逻辑非(!!),相当于一次Boolean()转换函数。2.逻辑与(&&)很重要的一点:在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔...2015-03-04 11:17:44 · 206 阅读 · 0 评论 -
ECMAScript对象属性的类型
ECMAScript对象的属性的类型理解概念:指的是ECMAScript对象的属性的特征,属性有哪些特征,属性有哪些分类。一共分两类:数据属性和访问器属性。数据属性数据属性特征[[Configurable]]表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认true。[[Enumerable]]...2015-03-07 10:57:05 · 328 阅读 · 0 评论 -
ECMAScript函数的原型
函数的原型基本概念每个函数都有一个原型(prototype)属性;原型属性是一个指针,指向一个对象;对象的用途是包含可以由特定类型的所有实例共享的属性和方法。理解函数原型对象(prototype)constructor属性。创建函数后,自动获取到此属性。默认情况下,函数prototype的constructor指向函数本身。function Foo() {...2015-03-08 11:25:02 · 187 阅读 · 0 评论 -
批量创建ECMAScript对象的七种模式
创建单个对象的方法:直接量var blog = { author: "MirrorAvatar", year: 2015};关键字newvar blog = new Object();blog.author = "MirrorAvatar";blog.year = 2015;以上方法的缺点:使用同一个接口创建很多对象,会产生...2015-03-09 21:52:48 · 148 阅读 · 0 评论 -
ECMAScript原型链
构造函数、原型和实例之间的关系关系图:原型链的基本概念基于上述关系图的理解,让原型对象等于另一个类型的实例,假如这个类型的原型又等于另一个类型的实例,这样层层递进,构成了实例和原型的链条。关系图:原型链的代码实现的基本模式//组合构造函数模式和原型模式function SuperType() { this.property = true;...2015-03-10 12:06:20 · 198 阅读 · 0 评论 -
YUI用的寄生组合式继承
什么是“寄生组合式继承”?通过借用构造函数来继承属性,通过原型链的混成形式来继承方法。构造函数 + 原型链。寄生组合式继承是引用类型最理想的继承范式。寄生组合式继承的基本模式function inheritPrototype(subType, superType) { //创建对象 var prototype = Object(superType.pro...2015-03-10 19:54:34 · 167 阅读 · 0 评论 -
借用构造函数继承
基本概念借用构造函数(constructor stealing)进行继承的基本思想就是:在子类型构造函数的内部调用超类型构造函数。那么,如何调用?函数只不过是在特定环境中执行代码的对象,因此通过使用apply()和call()方法也可以在(将来)新创建的对象上执行构造函数。示例代码function SuperType() { this.number = [1, ...2015-03-11 22:25:04 · 269 阅读 · 0 评论 -
ECMAScript的组合继承
题外话:只有自己尝试写个框架,才有机会接触像原型、作用域、事件代理、缓存系统、定时器等深层知识。司徒正美《JavaScript框架设计》起源单独使用原型链继承:优点,利用prototype实现了数据的共享,以此来实现继承。缺点,当涉及到引用类型(比如说数组)的时候,一个实例修改了引用类型的值会影响到另一个实例,耦合性太强。单独借用构造函数继承:优...2015-03-12 11:31:15 · 160 阅读 · 0 评论 -
ECMAScript的Undefined类型
1.Undefined类型的基本概念Undefined类型的值,只有一个:undefined。var message1;alert(message1 === undefined); // truevar message2 = undefined;alert(message2 === undefined); //true var声明的变量如果没有初始化,那...2015-03-02 13:51:45 · 167 阅读 · 0 评论 -
简单理解ECMAScript中的Object类型
了解Object类型1.Object的基本概念ECMAScript中对象的本质:一组数据和功能的集合。创建一个新对象:var o = new Object();var o = new Object; //有效,但是不推荐 在ECMAScript中,如果不给构造函数传参数,可以省略后面的那一对圆括号。但是不推荐这样做。2.Object类型实例所具有的属性和...2015-03-02 09:48:00 · 452 阅读 · 1 评论 -
理解掌握ECMAScript的String类型
理解掌握ECMAScript的String类型1.转义序列有哪些?转义序列,String类型的特殊字符字面量(Character Literals)。字面量含义\n换行\t制表\b空格\r回车\f进纸\'单引号\"双引号\xnn以十六进制代码nn表示的一个字符(其中n为0~F),...2015-02-28 17:22:04 · 196 阅读 · 0 评论 -
ECMAScript中变量的LHS引用和RHS引用
在JavaScript中有两种变量引用:LHS(Left-hand Side)引用和RHS(Right-hand Side)引用。通常是指等号(赋值运算)的左右边的引用。 那么LHS引用和RHS引用有什么区别呢?LHS引用用来赋值运算,RHS引用用来获取值。 例子1:var a = 2; 例子1中,这个a就是LHS引用。 例子2:console....原创 2015-02-02 11:45:34 · 279 阅读 · 0 评论 -
ECMAScript中的ReferenceError和TypeError
在调试JavaScript程序的时候经常遇到两个错误:ReferenceError和TypeError。 字面上的意思是:引用错误和类型错误。下面从作用域(Scope)的角度来阐述着两个错误。 在说这个之前需要了解的知识是:JavaScript中变量的LHS引用和RHS引用。 先说:ReferenceError。 当JavaScript引擎进行RHS查询变量的...原创 2015-02-02 19:57:54 · 301 阅读 · 0 评论 -
ECMAScript声明提升需要注意的几点
博客地址:http://mirroravatar.iteye.com/blog/2182793 出场白:JavaScript Hoisting,即JavaScript声明提升,包括函数声明提升和变量声明提升。 正文部分: 声明的提升,是按作用域来提升的。比如说,函数中的一个变量声明是这样的:function foo() { console.log(...原创 2015-02-03 09:00:51 · 131 阅读 · 0 评论 -
ECMAScript中逗号操作符少见的用法
引言:有的公司面试前端开发的时候,可能会问JavaScript逗号操作符的问题,详情请参考文章最后的链接。 知识结构: JavaScript逗号操作符,在MDN上是这么说的: The comma operator evaluates each of its operands (from left to right) and returns the value of...原创 2015-02-03 19:56:49 · 135 阅读 · 0 评论 -
ECMAScript闭包(Closure)涉及到的相关知识
最近在看:Scope Closure,总结一下这一章中重要的知识结构。 首先,祭出自己画的这个知识导图:然后,来说一下对闭包(Closure)的理解:写道Closure is when a function can remember and access its lexical scope even when it's invoked outside its lexic...原创 2015-02-13 16:16:08 · 184 阅读 · 0 评论 -
ECMAScript基本语法思维导图
《JavaScript高级程序》第三版,第三章基本概念,第一节语法。Github地址:Reviewing syntax,欢迎修正。2015-02-23 20:39:24 · 340 阅读 · 0 评论 -
理解掌握ECMAScript的Null类型
如何掌握Null类型1.理解Null类型基本概念Null类型是第二个(第一个是Undefined类型)只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时会返回"object"的原因。typeof null;//"object"2.掌握null的最佳实践如果定义的变量准备在将来用于保...2015-02-26 11:32:39 · 125 阅读 · 0 评论 -
理解掌握ECMAScript的Boolean类型
1.使用最多Boolean类型是ECMAScript中使用得最多的一种类型,该类型只有两个字面值:true和false。2.字面值区分大小写Boolean类型的字面值true和false是区分大小写的。也就是说,True和False(以及其他的混合大小写形式)都不是Boolean值,只是标识符(identifier)。typeof true // "boolean"ty...2015-02-26 16:27:43 · 134 阅读 · 0 评论 -
理解掌握ECMAScript的Number类型
从哪几个方面来掌握Number类型?首先,明确一点:变量没有类型,有类型的是变量的值。变量用来存储各个类型的值。一.Number类型的基本概念Number类型的值有两种:整数值和浮点数值(浮点数值在某些语言中也被成为双精度数值double-precision)。这两种数值都是用IEEE754格式来表示的。二.Number类型数值字面量格式有哪些?1.十进制整数。最...原创 2015-02-27 23:06:53 · 180 阅读 · 0 评论 -
Vue多页应用脚手架
最近开发后台管理系统,一直使用这个.Github地址:基于Vue2 Webpack2 ElementUI的多页应用脚手架2017-04-13 14:05:59 · 213 阅读 · 0 评论