ECMAScript 2018快速入门
内容节选
在这一章中我们聊一聊ECMAScript中的几个关键语句switch、for-in、label等语句,加深我们对它们的理解和认识。首先从最常见的说起。
while和for
while和for是很常规的语句,无论是在JavaScript还是C还是其他编程语言中。而且在编程中我们较常用的也是for,for用起来更灵活,更简单,所以有些人可能就会产生这样一种误解:
for比while更强大,能做到while做不到的一些事情。
其实我们稍微想想while和for语句的语法应用,我们就会发现:
while循环做不到的for循环也做不到。
这是因为for循环只是把while循环有关的代码集中在了一起而已,其实有些时候,用while循环比用for循环更简单。这也是各司其职各有利弊吧。
关于循环的另一点,我们先看一段代码:
for(i=0;i<5;i++){ console.log(i); } console.log(i);
在循环外打印i,打印输出是5。
可以看到,在循环内部定义的变量在外部也是可以访问的。在一些语言中比如C,大括号定义的是块级作用域,但是在ECMAScript中是没有块级作用域这个概念的,所以在循环内部定义的变量在外部也是可以访问的。
switch语句
在其他编程语言中比如C,switch语句只能使用数字,而在ECMAScript中,switch语句可以使用任何数据类型,像字符串、对象都是可以的。
这里有一点需要说明:switch语句比较的时候使用的全等操作符,即===,所以'10'和10不相等,因为在进行全等比较的时候,并不发生类型转换。
for-in语句
for-in语句是一种精确性的迭代语句,可以用来遍历对象的属性,当然也可以迭代数组的属性。下面分别以例子说明:
for-in遍历对象
•window
先遍历一个特殊的对象window:
for(var i in window){ console.log(i); }
会打印出一串很长很长的属性列表,大家可自行查看,在此不一一罗列赘述。
•自定义对象
遍历自定义对象
var o={prop1:'value1', prop2:'value2', prop3:'value3'}; for (var i in o){ console.log(i); }
打印出prop1 prop2 prop3。
•数组
遍历数组
var array1=[1,2,3,4]; for(var i in array){ console.log(i); }
打印输出1 2 3 4。
with语句
with语句可以用来限制作用域,即可以将代码的作用域设置到一个特定的对象中。如下:
var hostname=location.hostname; var url=location.href;
内容介绍
ECMAScript是一种由ECMA国际通过ECMA-262标准化的脚本程序设计语言,目前*版本为ECMAScript 2018。JavaScript是这个标准的一个实现和扩展。这种语言广泛用于Web前端开发,可以说想成为一名前端开发高手,就必须掌握ECMAScript。 本书分为13章,较为系统地介绍ECMAScript语言,内容包括变量与常量、表达式和运算符、字符串、数字和符号、数组和类型化数组、对象、函数、集合和映射、迭代器和生成器、Promise对象与异步函数、代理、类和模块,*后引导读者自己动手写一个JS框架。 本书适合Web前端初学者、不了解ECMAScript的Web前端开发人员,也适合高等院校和培训学校相关专业的师生进行参考。
目录
- 第1章 变量与常量 1
- 第2章 表达式和运算符 7
- 第3章 字符串 15
- 第4章 数字和符号 28
- 第5章 数组和类型化数组 39
- 第6章 对象 47
- 第7章 函数 56
- 第8章 集合和映射 67
- 第9章 迭代器和生成器 73
- 第10章 Promise对象与异步函数 83
- 第11章 代理 88
- 第12章 类和模块 98
- 第13章 自己动手写一个框架 105