初步了解第六大基本类型Symbol 概述: 什么是Symbol.Symbol是一个标记,一个独一无二的记号. Symbol的出现主要是解决了以前ES5中两个问题 在属性中同名的属性会被覆盖 无法做到属性的私有化 Symbol是什么: Symbol是符号的意思.实际上Symbol是一个内部的构造函数,每一次返回一个独一无二的符号.一种新的机制,可以保证属性名称的独一无二性.可以有效的避免属性的冲突,并且外部不能轻易拿到Symbol值属性. Symbol是是一种新的的原始数据类型. Symbol的使…
深入探讨 ECMAScript 规范第五版 随着 Web 应用开发的流行,JavaScript 越来越受到开发人员的重视.作为 ECMAScript 的变体,JavaScript 语言的很多语法特性都由 ECMAScript 规范来定义.ECMAScript 规范是学习掌握 JavaScript 的最好的第一手资料.很多在使用 JavaScript 时会遇到的常见问题,都可以在 ECMAScript 规范中找到答案.本文对 2009 年 12 月发布的 ECMAScript 规范第五版中的重点内…
在<JavaScript深入之执行上下文栈>中讲到,当JavaScript代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution context). 对于每个执行上下文,都有三个重要属性 变量对象(Variable object,VO) 作用域链(Scope chain) this 今天重点讲讲 this,然而不好讲. …… 因为我们要从 ECMASciript5 规范开始讲起. 先奉上 ECMAScript 5.1 规范地址: 英文版:http…
这是<JavaScript高级程序设计(第三版)>第六章相关内容的总结. ECMAScript中有两种属性:数据属性和访问器属性.每种属性都有四个特性值. 数据属性的四个特性值: [[Configurable]]:表示能否通过delete删除属性:能否修改属性的特性值:能否把属性修改为访问器属性.直接在对象上定义的属性,该特性的默认值为true. [[Enumerable]]:表示能否通过for-in循环返回属性.直接在对象上定义的属性,该特性的默认值为true. [[Writable]]:表…
ECMAScript 6中多了两个定义变量的关键词,一个是let,另一个是const,后者顾名思义就是常量定义,前者的作用域范围是块级的. 一般写过js的童鞋都知道,同其他语言一样,JS中的变量作用域是函数域而不是块级分割的,但是涉及到变量提升(hosting),闭包等问题的时候,很多有经验的程序员依然会头疼. var a = 5; if(true){ var a = 10; } console.log(a); 上面的结果是10,但是我们看到,在if block内外都有一个a的定义,按我们正常的…
一.UML中的六大关系 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency). 1.1. 继承关系-泛化(Generalization) 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系:在Java中用extend…
本文将覆盖在ECMAScript 6 (ES6)中,字符串的新特性. Unicode 码位(code point)转义 Unicode字符码位的长度是21位[2].而JavaScript的字符串,是16位的,以UTF-16的方式编码.因此,超出16位码长的码位范围(the Basic Multilingual Pane, BMP, 基本多文种平面)则用两个JavaScript字符表示.直到现在,如果想用数字指定这样的码位,需要两个叫Unicode转义符的东西.以下,则会以相应的码位(0x1F68…
本文介绍ECMAScript 6即将带给我们新的数组操作方法,以及在怎样在现有浏览器应用这些新的数组特性. Note: 我将使用交替使用构造器(constructor)和类(class)两个术语. 类方法 数组(Array)自身所拥有的方法. Array.from(arrayLike, mapFunc?, thisArg?) Array.from()的基本功能是,转换两种类型的对象成数组. 类数组对象(Array-like objects) 该类对象有长度与索引的属性.DOM操作符的结果即属于该…
ECMAScript 5中定义了9个新的数组方法,用于遍历.映射.过滤.检测.简化和搜索数组. 在开始介绍之前,很有必要对这几个新增的数组方法做一个概述.首先,大多数方法的第一个参数接收一个函数,并且对数组的每个元素(或者一些元素)调用一次该函数.如果是稀疏数组,对不存在的元素不调用传递的函数.在大多数情况下,调用提供的函数使用3个参数:数组元素.数组元素的索引值和数组本身.通常,知需要第一个参数,可忽略后面2个参数.大多数ECMAScript 5数组方法的第一个参数是一个函数,第二个参数是可选…
1.引言--JavaScript就是一个熊孩子   1.1对于JSer们来说,js是自由的,但同时又有许多让人烦恼的地方.javascript很多时候就是这么一个熊孩子,他很多时候并不会像C和java这些"好孩子"那样循规蹈矩.因此给我们带来许多烦恼   <1>运行时候控制台报错:uncaught error,这尤其令人恼火的是系统告诉我们有错误但是又不告诉我们错误发生在哪里.试想一下,你到一个地方旅游迷了路,一个当地的熊孩子一直笑嘻嘻地跟在你后头告诉你:"你走错…