ES5的语法

js在产生的时候,年代比较早,当时的web需求比较少,所以刚开始的js功能比较少,语法没有特别严谨。随着时代的发展和web应用的普及,js需要更多的功能,以及更严谨的语法,所以,js会有版本的升级。第一版的js是ECMA一开始统一了标准以后的版本。我们现在的所使用的语法,大多是ECMAScript版本3的语法,简称es3。到目前为止,已经有了es7,8,9,甚至es10 的版本了。近几年,基本每年都会有新的版本更新。

每个版本的更新,都需要浏览器支持才能运行,但浏览器不会在js更新之后,立马更新。所以有的版本出来之后,需要在很长时间之后,浏览器才会兼容他。到目前为止,我们公认,es5是兼容性最好的版本。

es5比起我们所正在使用的es3,语法没有什么变化,增加了一个严格模式,还有一些数组的方法。
 

严格模式


由于 js 的作用域和隐式声明变量等语法会造成很多预想不到的错误,所以 ES5 中新增了一个严格模式的语法,用于严 格规范代码的书写。


使用语法:


"use strict";


使用说明:


        1. 要放在代码的最前面,也就是在 script 标签中的第一行或者某个函数中的第一行,否则会失效


        2. 严格模式可以规范当前 script 标签或者当前函数中的代码,不能规范别的 script 标签中的代码和别的函数


规范的语法:


        1. 不允许隐式声明变量


        2. 禁止函数中的形参重名


        3. 禁止函数中的 this 代表 window


为什么要使用严格模式?


        1. 可以让代码更加规范


        2. 可以让代码运行起来更快,提高运行效率



新增数组方法


indexOf 方法


查找某个元素在数组中第一次出现的位置



arr.indexOf( 元素 ,[ 开始查找的起始下标 ]);



# 参数 1 :将要查找的元素



# 参数 2 :可选项。从哪个下标开始往后查找



# 返回值:如果找到了,就返回这个元素在数组中的下标,如果没有找到,就返回 -1





例:



var arr = [ 1 , 3 , 5 , 7 , 7 , 5 , 3 , 1 ];



console . log ( arr . indexOf ( 5 )); // 2 - 查找数字 5 在数组中第一次出现的下标



console . log ( arr . lastIndexOf ( 5 )); // 5 - 查找数字 5 在数组中最后一次出现的位置



console . log ( arr . indexOf ( 5 , 3 )); // 5 - 从下标 2 开始查找数字 5 在数组中第一次出现的位置



console . log ( arr . lastIndexOf ( 5 , 4 )); // 2 - 从下标 4 开始查找数字 5 在数组中最后一次出现的下标



console . log ( arr . indexOf ( "5" )); // -1 - 数组中全是数字,找不到字符串 5 ,所以返回 -1




forEach 方法



用于遍历数组



语法:



arr.forEach(function(值, 下标, 当前数组){
	// 代码段
});



# 在这个方法中需要传入一个函数参数,这个函数的参数说明如下:



# 参数 1 :数组遍历出来的每个值



# 参数 2 :可选项。数组遍历出来的每个值对应的下标



# 参数 3 :可选项。被遍历的当前数组



例:



var arr = [ 1 , 2 , 3 , 4 , 5 ];



arr . forEach ( function ( x , index , a ){



console . log ( x + '|' + index + '|' + ( a === arr ));



});



        // 输出为:



        // 1|0|true



        // 2|1|true



        // 3|2|true



        // 4|3|true



        // 5|4|true



使用说明:



这个方法没有返回值,返回值为undefifined,不会改变原来数组的值。



map 方法



遍历数组,并将每个元素经过函数处理后,形成新的元素,所有新元素组成新数组返回



语法:




arr.map(function(值,下标,当前数组){
	return 新的值 - 通常新的值是由旧的值处理以后得到
});

例:



var arr = [ 1 , 2 , 3 , 4 , 5 ];



var arr2 = arr . map ( function ( item ){



return item * item ;



});



console . log ( arr2 ); //[1, 4, 9, 16, 25]



使用说明:



这个方法主要用于以同样的规则处理数组中的每个值,并组成新的数组返回




fifilter 方法



将数组中满足指定条件的值,组成新的数组返回



语法:



arr.filter(function(值, 下标, 当前数组){
	return 筛选条件
});



例:



var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(v, index) {
return v>5
});
console.log(arr2); //[6, 7, 8, 9, 10]



使用说明:



使用方法和功能跟map方法很像,只是运行规则不一样。map方法中的函数,用于返回新的元素,而fifilter方法中的 函数,根据返回true或false来筛选元素



IE浏览器永的ES版本 es浏览器哪个版本好_前端