JavaScript 语法.docx
《JavaScript 语法.docx》由会员分享,可在线阅读,更多相关《JavaScript 语法.docx(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JavaScript 语法ES2015(ES6)新增加了两个重要的JavaScript关键字:let 和 constolet声明的变量只在let命令所在的代码块内有效。const声明一个只读的常量,一旦声明,常量的值就不能 改变。在ES6之前,JavaScript只有两种作用域:全局变量与函 数内的局部变量。在函数外声明的变量作用域是全局的:全局变量在JavaScript程序的任何地方都可以访问。在函数内声明的变量作用域是局部的(函数内):函数内使用var声明的变量只能在函数内容访问,如果不 使用var那么是全局变量。const x = 2;这里输出x为2)这里输出x为10const声明的常量
2、必须初始化:/错误写法const PI;PI = /正确写法const PI = const的本质:const定义的变量并非常量,并非不可变, 它定义了一个常量引用一个值。使用const定义的对象或者数 组,其实是可变的。下面的代码并不会报错:但是我们不能对常量对象重新赋值:以下实例修改常量数组:但是我们不能对常量数组重新赋值:Internet Explorer 10及更早版本的浏览器不支持const关 键字。下表列出了各个浏览器支持const关键字的最低版本号。使用var关键字声明的变量在任何地方都可以修改:在相同的作用域或块级作用域中,不能使用const关键字 来重置var和let关键字声
3、明的变量:var x = 2;/ 合法const x = 2;/ 不合法let x = 2;/ 合法const x = 2; / 不合法)在相同的作用域或块级作用域中,不能使用const关键字 来重置const关键字声明的变量:const x = 2;/ 合法const x = 3;/ 不合法x = 3;/不合法var x = 3;/不合法let x = 3;/不合法const x = 2; / 合法const x = 3; / 不合法x = 3;/不合法var x = 3;/不合法let x = 3;/不合法)const关键字在不同作用域,或不同块级作用域中是可以 重新声明赋值的:const
4、 x = 2;/ 合法(const x = 3; / 合法const x = 4; 合法 )JavaScript var关键字定义的变量可以在使用后声明,也 就是变量可以先使用再声明(JavaScript变量提升卜const关键字定义的变量那么不可以在使用后声明,也就是 变量需要先声明再使用。carName = Volvo; /在这里不可以使用carName变量const carName = Volvo;在学习本章节内容前,你需要先了解什么是异步编程,可 以参考:JavaScript异步编程Promise是一1k ECMAScript 6提供的类,目的是更加优 雅地书写复杂的异步任务。由于Pr
5、omise是ES6新增加的,所以一些旧的浏览器并 不支持,苹果的Safari 10和Windows的Edge 14版本以上浏 览器才开始支持ES6特性。以下是Promise浏览器支持的情况:现在我们新建一Promise对象:new Promise(function (resolve, reject) 要做的事情);通过新建一个Promise对象好像并没有看出它怎样“更加 优雅地书写复杂的异步任务”。我们之前遇到的异步任务都是一 次异步,如果需要屡次调用异步函数呢?例如,如果我想分三 次输出字符串,第一次间隔1秒,第二次间隔4秒,第三次间 隔3秒:这段程序实现了这个功能,但是它是用“函数瀑布”来
6、实现 的。可想而知,在一个复杂的程序当中,用“函数瀑布”实现的 程序无论是维护还是异常处理都是一件特别繁琐的事情,而且会让缩进格式变得非常冗赘。现在我们用Promise来实现同样的功能: 这段代码较长,所以还不需要完全理解它,我想引起注意的是Promise将嵌套格式的代码变成了顺序格式的代码。下面我们通过剖析这段Promise ”计时器”代码来讲述Promise的使用:Promise构造函数只有一个参数,是一函数,这个函数在构造之后会直接被异步运行,所以我们称之为起始函数。起 始函数包含两个参数resolve和rejecto当Promise被构造时,起始函数会被异步执行: 这段程序会直接输出R
7、un。resolve和reject都是函数,其中调用resolve代表一切正 常,reject是出现异常时所调用的:这段程序执行结果是:EndPromise 类有.then() .catch()和.finally()三个方法,这三 个方法的参数都是一个函数,.then()可以将参数中的函数添加 到当前Promise的正常执行序列,.catch。那么是设定Promise 的异常处理序列,.finally。是在Promise执行的最后一定会执 行的序列。.then。传入的函数会按顺序依次执行,有任何异常都会直 接跳到catch序列:执行结果:111122223333An errorresolve(
8、)中可以放置一个参数用于向下一个then传递一个值,then中的函数也可以返回一个值传递给then。但是,如果then中返【的是一个Promise对象,那么下一个then将相当于对这个返【当于对这个返【的Promise进行操作,这一点从刚才的计时器的例子中可以看出来。reject()参数中一般会传递一个异常给之后的catch函数用 于处理异常。但是请注意以下两点:resolve和reject的作用域只有起始函数,不包括then以 及其他序列;resolve和reject并不能够使起始函数停止运行,别忘了 return o上述的“计时器”程序看上去比函数瀑布还要长,所以我们 可以将它的核心局部写
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaScript 语法
限制150内