ECMAScript

ES6笔记

主宰稳场 提交于 2019-12-09 10:57:06
ES6笔记 ECMAScript 和 JavaScript 的关系 ECMAScript和JavaScript到底是什么关系?很多初学者会感到困惑,简单来说,ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScript的实现。 ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 JScript 和 ActionScript)。日常场合,这两个词是可以互换的。 let 命令 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 for (let i = 0; i < 10; i++) { // ... } console.log(i); // ReferenceError: i is not defined 使用var命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组a的函数内部的console.log(i),里面的i指向的就是全局的i。也就是说,所有数组a的成员里面的i,指向的都是同一个i

在哪里可以找到有关在JavaScript中格式化日期的文档? [关闭]

不羁的心 提交于 2019-12-08 18:01:25
我注意到JavaScript的 new Date() 函数非常聪明,可以接受多种格式的日期。 Xmas95 = new Date("25 Dec, 1995 23:15:00") Xmas95 = new Date("2009 06 12,12:52:39") Xmas95 = new Date("20 09 2006,12:52:39") 在调用 new Date() 函数时,找不到任何显示所有有效字符串格式的文档。 这是用于将字符串转换为日期。 如果我们从相反的角度来看,也就是将日期对象转换为字符串,直到现在,我仍然觉得JavaScript没有内置的API将日期对象格式化为字符串。 编者按: 以下方法是提问者的企图是工作在一个特定的浏览器,但一般 不 工作; 请参阅本页上的答案 以查看一些实际解决方案。 今天,我在date对象上使用 toString() 方法,令人惊讶的是,它用于将日期格式化为字符串的目的。 var d1 = new Date(); d1.toString('yyyy-MM-dd'); //Returns "2009-06-29" in Internet Explorer, but not Firefox or Chrome d1.toString('dddd, MMMM ,yyyy') //Returns "Monday, June 29,2009" in

Mobile First! Wijmo 5 之 架构

给你一囗甜甜゛ 提交于 2019-12-06 22:50:08
CSDN 移动开发 频道率先报道的《 Mobile First!jQuery UI组件集Wijmo五年最大更新 》引起开发者极大关注。 本文就开发者关心的话题之一架构,展开叙述。 Wijmo 5 是一组JavaScript控件,但是不要与Widgets混淆。在此前开发 Wijmo 的时候,我们能够用像jQuery UI和jQuery Mobile Widget 框架来构建它,同时也为我们构建Web框架-- Wijmo 节省了时间。 但是,当我们希望构建一个更现代的Wijmo 5,我们认为现在是时候重新审视JavaScript UI组件,尤其是语法和API接口。在做了大量的研究和讨论后,我们使用了“真正的JavaScript控件(true JavaScript Controls)”,如你在 .NET 中使用类似的属性,方法和事件等API,同样的在JavaScript UI组件的使用方法几乎完全相同。 同时,我们选择IE9作为Wijmo 5浏览器支持的基准版本,因为IE9支持ECMAScript 5语法,而这点对我们的Wijmo 5架构非常关键,由此创造了新的Wijmo 5架构。 ECMAScript 5 Controls 我们的Wijmo 5框架直接采用了ECMAScript 5。我们的源码使用TypeScript,这使得开发非常容易。如,使用它创建了控件基类(Base

设置JavaScript函数的默认参数值

情到浓时终转凉″ 提交于 2019-12-06 10:20:31
我希望JavaScript函数具有我设置了默认值的可选参数,如果未定义值,则使用该参数(如果传递值,则将其忽略)。 在Ruby中,您可以这样操作: def read_file(file, delete_after = false) # code end 这可以在JavaScript中使用吗? function read_file(file, delete_after = false) { // Code } #1楼 在ECMAScript 6中,您实际上将能够准确地写出您拥有的东西: function read_file(file, delete_after = false) { // Code } 如果不存在或 undefined 它将 delete_after 设置为 false 。 您现在可以将诸如 Babel 这样的编译器与ES6功能一起使用。 有关更多信息,请参见MDN文章 。 #2楼 作为更新...使用ECMAScript 6,您可以像下面这样在函数参数声明中 最终 设置默认值: function f (x, y = 7, z = 42) { return x + y + z } f(1) === 50 如参考 -http://es6-features.org/#DefaultParameterValues #3楼 只需使用未定义的显式比较即可。 function

ES6学习路线图

徘徊边缘 提交于 2019-12-06 07:41:48
第一部分:简介 【探秘ES6】系列专栏(一):ES6简介 http://my.oschina.net/1pei/blog/520581 第二部分:let和const, Symbols, 解构赋值, 模版字符串 说明:这一部分各专题之间都比较独立,建议先学习与var变量声明对应的let, const, 然后学习第七种基本类型Symbols, 然后学习解构赋值与模版字符串。 【探秘ES6】系列专栏(十二):let和const http://my.oschina.net/1pei/blog/531721 【探秘ES6】系列专栏(八):JS的第七种基本类型Symbols http://my.oschina.net/1pei/blog/527758 【探秘ES6】系列专栏(六):解构赋值 http://my.oschina.net/1pei/blog/527751 【探秘ES6】系列专栏(四):模版字符串 http://my.oschina.net/1pei/blog/522557 第三部分:剩余参数和默认参数, 箭头函数, 类语法 说明:这一部分涉及函数参数, 箭头函数, 以及类语法, 各专题之间也都比较独立。 【探秘ES6】系列专栏(五):剩余参数和默认参数 http://my.oschina.net/1pei/blog/522560 【探秘ES6】系列专栏(七):箭头函数 http:/

ECMAScript6 --ES6

六月ゝ 毕业季﹏ 提交于 2019-12-06 03:20:37
1.1.1、 什么是 ECMAScript(就是JavaScript的规范) web1.0时代: 最初的网页以HTML为主,是纯静态的网页。网页是只读的,信息流只能从服务的到客户端单向流通。开发人员也只关心页面的样式和内容即可。 web2.0时代: - 1995年,网景工程师Brendan Eich 花了10天时间设计了JavaScript语言。 表单验证 - 1996年,微软发布了JScript,其实是JavaScript的逆向工程实现。 - 1997年,为了统一各种不同script脚本语言,ECMA(欧洲计算机制造商协会)以JavaScript 为基础,制定了 ECMAscript标准规范。JavaScript和JScript都是ECMAScript的标准实现者,随后各大浏览器厂商纷纷实现了ECMAScript标准。 所以, ECMAScript是浏览器脚本语言的规范,可以狭义理解是javascript的规范。 ES6就是javascript用的最多 语言规范 . 被各个浏览器实现了 . 1.1.1、 ES5 或 ES6 常用的一些新特性 (1)let 块级 var 全局   //(1)let局部变量 for(var i = 0;i<5;i++){ console.log(i); } //运行成功 console.log("全局:"+i); for(let j = 0;j<5

使用“ let”和“ var”有什么区别?

三世轮回 提交于 2019-12-06 02:29:12
ECMAScript 6引入 了 let 语句 。 我听说它被描述为“局部”变量,但是我仍然不太确定它的行为与 var 关键字有何不同。 有什么区别? 什么时候应该 let 在使用 var ? #1楼 范围规则 主要区别是作用域规则。 var 关键字声明的变量的作用域范围是立即函数主体(因此,函数作用域),而 let 变量的作用域范围是由 { } 表示的直接 封闭 块(因此,块作用域)。 function run() { var foo = "Foo"; let bar = "Bar"; console.log(foo, bar); { let baz = "Bazz"; console.log(baz); } console.log(baz); // ReferenceError } run(); 将 let 关键字引入该语言的原因是函数范围令人困惑,并且是JavaScript中错误的主要来源之一。 从 另一个stackoverflow问题 看这个示例: var funcs = []; // let's create 3 functions for (var i = 0; i < 3; i++) { // and store them in funcs funcs[i] = function() { // each should log its value. console

Javascript基础知识(一)

一笑奈何 提交于 2019-12-05 08:45:12
1.Javascript简介   1.1相关介绍   JavaScript(缩写为JS)是一种高级的、多范式、解释型的编程语言,是一门基于原型、函数先行的语言,它支持面向对象编程、命令式编程以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式,不支持I/O(比如网络、存储和图形等),但可以由它的宿主环境提供支持。它已经由ECMA(欧洲计算机制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器支持。JavaScript的标准是ECMAScript 。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了ECMAScript 的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES6。    1.2组成部分   ECMAScript是一个标准,它规定了语法、类型、语句、关键字、保留子、操作符、对象。     BOM(浏览器对象模型):可以访问浏览器窗口的浏览器对象模型,对浏览器窗口进行操作。   DOM(文档对象类型):DOM把整个页面映射成一个多层节点结构。HTML页面组成都是某种类型的节点,这些节点又包含着不同类型的数据。   1.3用途  

ECMAScript6标准-简介

放肆的年华 提交于 2019-12-05 04:08:00
Introduction This Ecma Standard defines the ECMAScript 2015 Language. It is the sixth edition of the ECMAScript Language Specification. Since publication of the first edition in 1997, ECMAScript has grown to be one of the world’s most widely used general purpose programming languages. It is best known as the language embedded in web browsers but has also been widely adopted for server and embedded applications.The sixth edition is the most extensive update to ECMAScript since the publication of the first edition in 1997. 前言 该Ecma标准定义了ECMAScript 2015语言。 这是ECMAScript语言规范的第六版。 自1997年发行第一版以来

面向对象day1

依然范特西╮ 提交于 2019-12-05 03:19:12
面相对象基础知识 1 JavaScript的历史 liveScript -> JavaScript -> JScript -> ECMAScript 2 JavaScript与ECMAScript的关系 JavaScript 就是 ECMAScript 的一种实现。 一种弱类型的多范式的脚本语言。 数据类型 1》 基本数据类型 数字 字符串 bool值 2》复合数据类型 对象(自定义对象,内置对象(Array),单体对象(Math)) 3》空类型: null(空指针),undefined 语 句: 1》 条件语句:if语句 2》循环语句:for 、while 、do…while、for in 3》分支语句:switch 4》return语句:a: return; b: return value; 5》continue:结束本次循环 6》break a: 循环:结束循环;b:分支:跳出本分支 == 与 === 前者:比较内容,隐式类型转换;后者:比较内容和类型 装箱 与 拆箱 装箱: 将基本数据类型 包装成 其对应的 复合数据类型 拆箱: 将复合数据类型 转换成 其对应的 基本数据类型 sort方法参数fn: 如果fn的返回值,大于 0 就交换 a 和 b 的位置 小于 0 就不交换 等于0 就保持其相对位置 类型转换 1> 数字 -> 字符串: toString,String,’’