ECMAScript是由网景的布兰登·艾奇开发的一种脚本语言的标准化规范;最初命名为Mocha,后来改名为LiveScript,最后重命名为JavaScript。1995年12月,升阳与网景联合发表了JavaScript。1996年11月,网景公司将JavaScript提交给欧洲计算机制造商协会进行标准化。ECMA-262的第一个版本于1997年6月被Ecma组织采纳。ECMA Script是ECMA-262标准化的脚本语言的名称。尽管JavaScript和JScript与ECMAScript兼容,但包含超出ECMA Script的功能。
ECMAScript是一种可以在宿主环境中执行计算并能操作可计算对象的基于对象的程序设计语言。ECMAScript最先被设计成一种Web脚本语言,用来支持Web页面的动态表现以及为基于Web的客户机—服务器架构提供服务器端的计算能力。但作为一种脚本语言, ECMAScript具备同其他脚本语言一样的性质,即“用来操纵、定制一个已存在系统所提供的功能,以及对其进行自动化”。
for-in
for-in语句是一种严格的迭代语句,用于枚举对象中的非符号键属性,语法如下:
代码语言:javascript复制for(property in expression) statement
举例:
代码语言:javascript复制 <script>
for(const propName in window)
{
document.write(propName)
}
</script>
以上例子使用for-in循环显示了BOM对象window的所有属性。每次执行循环,都会给变量propName赋予一个window对象的属性作为值,直到window的所有属性都被枚举一遍。与for循环一样,这里控制语句中的const也不是必须的。但是为了确保这个局部变量不被修改,推荐使用const。
ECMAscript中的对象的属性是无序的,因此for-in语句不能保证返回对象属性的顺序。换句话说,所有可枚举的属性都会返回一次,但返回的顺序可能会因浏览器而异。
如果for-in循环要迭代的变量是null或undefined,则不执行循环体!
for-of
for-of语句是一种严格的迭代语句,用于遍历可迭代对象的元素,语法如下:
for(property of expression)statement
举例:
代码语言:javascript复制 <script>
for(const el of [2,4,6,8])
{
document.write(el)
}
</script>
这个例子中,我们使用for-of语句显示了一个包含4个元素的数组中的所有元素。循环会一直持续到将所有元素都迭代完。与for循环一样,这样控制语句中的const也不是必须的,但是确保这个局部变量不被修改,推荐使用const。
for-of循环会按照可迭代对象next()方法产生值的顺序迭代元素。