ECMASCRIPT - 技术教程文章

ECMAScript、EC5、ES6、ES7

一.ECMAScript入门介绍JavaScript是ECMAScript的实现 JavaScript三部分核心:1.ECMAScript实现2.额外对象,BOM/DOM扩展3.额外对象,Server侧扩展 2009,ES5发布2015,ES6发布2016,ES7发布(草案为主)ES8草案也已发布 二.ES5严格模式相对于正常模式(混杂模式),语法更严格 ‘user strict‘;,打开严格模式,适用于全局或者函数 要求:1.用var声明变量。否则自动成为window对象的一个变量,污染全局环境。2.禁止自定义的函数中t...

ECMAScript的组合继承

题外话:只有自己尝试写个框架,才有机会接触像原型、作用域、事件代理、缓存系统、定时器等深层知识。司徒正美《JavaScript框架设计》起源单独使用原型链继承:优点,利用prototype实现了数据的共享,以此来实现继承。缺点,当涉及到引用类型(比如说数组)的时候,一个实例修改了引用类型的值会影响到另一个实例,耦合性太强。单独借用构造函数继承:优点,子类可以向超类传参数。缺点,方法都是在构造函数里定义的,无可复用性。...

ECMAScript6 Function【代码】

函数  函数是编程语言非常重要的一部分,javascript得函数从最初到现在并没有太大得改变。遗留下来的问题和有差别得行为使得程序员很容易犯错,这可能需要程序员通过编写更多的代码来实现普通得功能。  ECMAScript6的函数有了很大的改进,考虑到了很多编程人员投诉和询问的问题。这样的结果是改进了很多ECMAScript 5 JavaScript函数功能,使得编写javascript程序更少出错,功能更强大。1、默认参数  javascript中的函数是特殊...

ECMAScript let 与 const【代码】

let/* let a = 0;//和var基本相似 console.log(a); */ let a = 0; var b = 10;//当上方有声明相同变量时(包含let)就会直接报错 /*var : 1.var 可以重复声明let:1.同一作用域下不能重复声明 */let的块级作用域if(true){let a = 1; } console.log(a);//报错!!~{//只要是大括号就是一个代码块//let在代码块之间,只能在代码块之中进行使用 } console.log(a);//->1; let->报错未定义 /*var : 1.var 可以重复声明2.作用域: 全局作用域 和...

【ECMAScript6】对象的扩展【代码】

一、属性的遍历ES6 一共有 5 种方法可以遍历对象的属性。1. for...infor...in循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性)。2. Object.keys(obj)Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 属性)的键名。3. Object.getOwnPropertyNames(obj)Object.getOwnPropertyNames返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名。4. Object....

ECMAScript5学习笔记--第十四章 程序

语法:  Program :  SourceElementsopt  SourceElements :  SourceElement  SourceElements SourceElement  SourceElement :  Statement  FunctionDeclaration  语义:  产生式 Program : SourceElementsopt 依照下面的步骤来解释执行 :若 SourceElements 的指令序言 ( 参考 14.1 章 ) 中 , 包含严格模式指令 , 或者满足 10.1.1 章节所描述的任何一个条件 . 则 Program 的代码 . 就是一段严格模式代码 . 并对应...

ECMAScript5之StrictMode【代码】【图】

ECMAScript5引入一个严格模式的概念(Strict Mode)。它的作用就是不让Javascript的容错那么高,让我们对编写代码的规范要求高一点。比如,当我们使用严格模式编写JavaScript代码时,我们不能隐式的申明变量,必须带var。那怎么使用严格模式(Strict Mode)呢?当我们想让代码启动严格模式(Strict Mode)时,我们可以在代码的开头或者函数function的开头中添加”use strict”。倘若我们在整个代码中启用严格模式(Strict Mode),...

ECMAScript的数据类型有哪些?

简单数据类型:Undefined、NULL、String、Number、Boolean 复杂数据类型:Object简单数据类型讲解一、Undefined1、值定义之后没有初始化2、值定义之后,使用undefined来初始化3、值为undefined4、不建议使用undefined来初始化或者作为初始值5、Number(undefined) = NaN6、undefined:缺少值二、NULL1、空对象的指针2、如果想初始化可以对对象变量进行初始化3、Number(null) = 04、null:没有对象三、String1、单引号和双引号相同2、...

ECMAScript 6 -- 数组的解构赋值【代码】【图】

模式匹配:只要等号两边的模式相同,左边的变量就会被赋予对应的值。let [a, b, c] = [1, 2, 3];嵌套数组进行解构:let [foo, [[bar], baz]] = [1, [[2], 3]]; foo // 1 bar // 2 baz // 3let [ , , third] = ["foo", "bar", "baz"]; third // "baz"let [x, , y] = [1, 2, 3]; x // 1 y // 3let [head, ...tail] = [1, 2, 3, 4]; head // 1 tail // [2, 3, 4]let [x, y, ...z] = [‘a‘]; x // "a" y // undefined z // []不完全解构...

ECMAScript 5 特性【代码】

ECMAScript 5 也称为 ES5 和 ECMAScript 2009。ECMAScript 5 特性这些是 2009 年发布的新特性:"use strict" 指令String.trim()Array.isArray()Array.forEach()Array.map()Array.filter()Array.reduce()Array.reduceRight()Array.every()Array.some()Array.indexOf()Array.lastIndexOf()JSON.parse()JSON.stringify()Date.now()属性 Getter 和 Setter新的对象属性和方法ECMAScript 5 语法更改对字符串的属性访问 [ ]数组和对象字面...

ES6-21:编程风格、ECMAScript规格

良好的代码编程习惯是一个优秀的软件工程师的必备素养,也是一个团队开发易于阅读、高可维护性的大型项目的基础;虽然Javascript弱语言的本质给前端开发者带来了更大的灵活性,但从工程的角度来说这是非常不合理的,也是一个可维护性项目潜在的致命缺陷。为了避免出现‘‘连自己以前写过的代码都不忍睹视’’以及‘‘一个团队成员休假或离职,造成整个项目瘫痪’’的尴尬局面,对于一个大型项目而言,项目的代码风格,和项目的代码...

ECMAScript语句之《switch 语句》【代码】

switch 语句又名《分支语句》,很多资料把他称之为if语句的兄弟语句。 在if语句中条件过多的时候可以使用switch 语句来简化代码。先看一下语法:switch (expression){case value: statement;break;case value: statement;break;case value: statement;break;default: statement;}解释一下:1、expression是传过来的值2、value是需要满足的条件3、statement是满足之后执行的函数4、default是默认值(一般都不满足的时候会执行)5、b...

EcmaScript内置对象的属性与方法【图】

原文:http://www.cnblogs.com/qianduanjingying/p/5126326.html

C++11正则表达式 ECMAScript文法【代码】

突然想写个爬虫,然后发现,如果有正则表达式,会方便些。C++11提供了Regex类.可以用来完成:1.Match: 将整个输入拿来比对(匹配)某个正则表达式。2.Search:查找“与正则表达式吻合”的子序列。3.Tokenize:正则表达式作为分割器,得到分割器之前的字符串。4.Replace:将与正则表达式吻合之的子序列替换掉 主要函数有: regex_match(),regex_search(),regex_replace();主要对象:sregex_iterator,sregex_token_iterator,regex,smat...

理解掌握ECMAScript的String类型【代码】

理解掌握ECMAScript的String类型1.转义序列有哪些?转义序列,String类型的特殊字符字面量(Character Literals)。字面量含义\n换行\t制表\b空格\r回车\f进纸\‘单引号\"双引号\xnn以十六进制代码nn表示的一个字符(其中n为0~F),例,\x41表示"A"\unnnn以十六进制代码nnnn表示的一个Unicode字符(其中n为0~F),例,\u03a3代表一个希腊字符Σ注意:1个转义序列的字符串表示1个字符。字符串的length属性返回了这个字符串中16位字符...

ECMAScript版本号总结

最近想要研究下ES6,关于这个标准的发展历史、ES5、 ES6、ES2015等等名称的定义都不怎么明确,查了很多资料,去除了程序员不关心的信息,下面是对ECMAScript规范发展历史及名词定义的总结。1997年7月,ECMAScript 1.0发布。1998年6月,ECMAScript 2.0版发布。1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。2008年7月ECMAScript 4.0版本废弃,发布为ECMAScript 3.1,后改名为ECMAScript 5,所以各类...

【前端学习】ECMAScript 6入门【代码】

ECMAScript 6入门let和const命令let命令声明的变量只在let命令所在的代码块内有效let所声明的变量一定要在声明后使用,否则报错块级作用域的出现,实际上使得广泛应用的匿名立即执行函数表达式(匿名IIFE)不再必要了const只能保证指向实际数据的指针是固定的,至于它指向的数据结构是不是可变的,就完全不能控制了ES6规定,var命令和function命令声明的全局变量,依旧是顶层对象的属性;另一方面规定,let命令、const命令、class命...

ECMAScript—事件【代码】【图】

事件JavaScript和HML之间的交互是通过事件是实现的。就是用户或者浏览器自身执行的某种动作。 即可以为HTML的元素设定事件处理程序来预定事件,以便在事件发生的时执行相应的代码。 事件流描述的是从页面中接收事件的顺序。例如当点击一个按钮这样的事件产生的时候,并不只是当前的按钮元素接收到这个点击事件,这个按钮的父级容器甚至整个文档都接收到了这个事件。 事件流要描述的问题就是,这个点击事件它是从父级容器传到按钮...

饮冰三年-人工智能-Python-46 Python之 初识ECMAScript6【代码】

一、ECMAScript与JavaScript 的关系前者是后者的规格,后者是前者的一种实现。在日常场合,这两个词是可以互换的。二、let和const命令 1、let与var  var:变量提升 与 let:块级作用域<script>console.log(a) //输出结果: undefinedconsole.log(b) //直接报错: Uncaught ReferenceError: Cannot access ‘b‘ before initializationvar a = "Hello,World";let b ="Hello,ECMA6" </script>var变量提升<script>{var a = "Hello,W...

实际上ECMAScript中并没有对类的定义

首先,我们用一个经典例子来简单阐述一下ECMAScript中的继承机制。在几何学上,实质上几何形状只有两种,即椭圆形(是圆形的)和多边形(具有一定数量的边)。圆是椭圆的一种,它只有一个焦点。三角形、矩形和五边形都是多边形的一种,具有不同数量的边。正方形是矩形的一种,所有的边等长。这就构成了一种完美的继承关系。如下图:在这个例子中,形状(Shape)是椭圆形(Ellipse)和多边形(Polygon)的基类(base class)(所有类...

JavaScript大杂烩13 - 总结ECMAScript 5新功能【代码】

虽说这个标准已经出来很久了,所有的主流浏览器的最新版本也都支持了这些特性,但是很多的教程中并没有包含这个部分,这一节我们专门来总结一下这个标准中的新功能。Object的新方法  在最新的JavaScript规范(ECMAScript 5)中,Object扩展了很多不错的静态方法,下面来简单看一下:1. create/getPrototypeOf方法 - 干净的原型链  先说简单的getPrototypeOf方法,这个方法统一了获取对象原型的方式,使用这个对象可以获取到对象的...

ECMAScript6 - Iterators and Generators【代码】

Iterators and GeneratorsIterators have been used in many programming languages as a way to more easily work with collections of data. In ECMAScript 6, JavaScript adds iterators as an important feature of the language. When coupled with new array methods and new types of collections (such as sets and maps), iterators become even more important for efficient processing of data.  在其他的语言中,遍...

ECMAScript 原始值和引用值【图】

在 ECMAScript 中,变量可以存在两种类型的值,即原始值和引用值。原始值和引用值在 ECMAScript 中,变量可以存在两种类型的值,即原始值和引用值。原始值存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。引用值存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。为变量赋值时,ECMAScript 的解释程序必须判断该值是原始类型,还是引用类型。要实现...

ECMAScript 总结【代码】

<script>元素 若果有src属性,元素内不可再包含JavaScript代码。如果包含了嵌入代码,则只会下载并执行外部脚本文件,嵌入的代码会被忽略。 src属性可以指向其所在页面之外的其他域的完整URL。不过在访问自己不能控制的服务器上的JavaScript代码要多加小心。 一般将JavaScript引用放在<body>元素的结束标签之前。因为如果将其放在<head>元素中,这就意味着必须等到所有的文件下载、解析和执行以后才能呈现页面内容,如果,外...

javascript学习笔记---ECMAScript 语句【代码】

ECMAScript 语句: 进一步说是流程控制语句。主要流程有:顺序,选择,循环。顺序语句不用多说。(大括号中的语句基本都是顺序的)选择语句:if (i > 30){alert("大于 30");} else{alert("小于等于 30");}if (i > 30) {alert("大于 30"); } else if (i < 0) {alert("小于 0"); } else {alert("在 0 到 30 之间"); }进一步有了switch语句:switch (expression)case value: statement;break;case value: statement;break;case value:...

SharePoint 使用ECMAscript对象模型来读取帖子列表【代码】

本随笔讲述如何用JavaScript来读取SharePoint 2013 中blog相关的帖子列表。ASCX File Content:<div id="divGetItemsFromPosts" title="读取贴子列表"></div><br /> <div id="divGetItemsFromComments" title="读取某个帖子的所有回贴"></div><br /> <script src="/_layouts/15/Learning_ECMAScript/Learning_WP_Blog.js"></script> JS File Content(Learning_WP_Blog.js): 1//读取帖子列表里的前10条帖子 2//Get top 10 items fr...

ECMAScript 6新特性之Proxy

ECMAScript 6中新增了一个全局构造函数:Proxy。该构造函数可以接收两个参数:一个目标对象,一个处理对象。代码示例:var target = {}; var handler = {}; var proxy = new Proxy(target, handler);proxy将具有与target类似的内部属性/方法;handler可以作为proxy方法的拦截器。版权声明:本文为博主原创文章,未经博主允许不得转载。原文:http://blog.csdn.net/winstar1688/article/details/46957245

javascript学习笔记---ECMAScript运算符(逻辑运算符)【代码】

Boolean 运算符非常重要,它使得程序语言得以正常运行。Boolean 运算符有三种:NOT、AND 和 OR。ToBoolean 操作在学习各种逻辑运算符之前,让我们先了解一下 ECMAScript-262 v5 规范中描述的 ToBoolean 操作。抽象操作 ToBoolean 将其参数按照下表中的规则转换为逻辑值:参数类型结果UndefinedfalseNullfalseBoolean结果等于输入的参数(不转换)Number如果参数为 +0, -0 或 NaN,则结果为 false;否则为 true。String如果参数为空...

phpstorm 配置 babel 支持EcmaScript6【代码】【图】

1.安装nodejs2.npm install --save-dev babel-cli3.npm install babel-preset-es2015 --save-dev4.phpstorm->settings->language&framework->javascript->ecmaScript65.phpstorm->settings->tools->file Watchers->"+ Babel"建议file type选择ecmascript6 使用*.es6文件编写es6 编译后生成*.js 这样避免*.js编译后仍然生成*.js在工程目录下新建.babelrc 添加配置配置{ "presets": ["es2015"] } 改写文件原文:http://www.cnblogs....

ECMAScript 5中的数组方法

1、forEach()forEach()方法从头至尾遍历数组,为每一个元素调用指定的函数。var data=[1,2,3,4,5]; var sum=0; data.forEach(functiion(value){sum+=value})//将每一个值累计到sum上2、map()map()方法将调用额数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值。a=[1,2,3]; b=a.map(function(x){return x*x})3、filter()filter()方法返回的数组元素是调用的数组的一个子集。字面意思为筛选a=[5,4,3,2,1]small...