ES5
ES5
- ECMAScript 5.1 (或仅 ES5) 是ECMAScript(基于JavaScript的规范)标准最新修正。
- 与HTML5规范进程本质类似,ES5通过对现有JavaScript方法添加语句和原生ECMAScript对象做合并实现标准化。
- ES5还引入了一个语法的严格变种,被称为”严格模式(strict mode)”。
严格模式(了解)
- 我们都知道 js 是一个相对不很严谨的语言
- 而且开发的时候,一些代码也不是很严格要求
- 而严格模式就是对开发的时候写的一些内容做了要求
开启严格模式
-
想开启严格模式,直接在代码最开始的位置写上字符串
use strict<script> 'use strtic' // 下面代码书写就要按照严格模式来书写 </script>
严格模式的规则
-
声明变量必须有
var关键字'use strtic' var num = 100 num2 = 200 // 这个就会报错- 之前了解过,在声明变量的时候,如果没有 var 关键字,那么按照作用域的规则会自动定义成全局变量
- 严格模式下不可以,会报错
-
函数的行参不可以重复
'use strtic' function fn(p1, p1) {} // 直接就会报错- 在非严格模式下,函数两个行参一样,是不会报错的,只不过就是相当于在函数内部只有一个变量了
- 但是在严格模式下会报错
-
声明式函数调用的时候函数内部没有 this
'use strtic' function fn() { console.log(this) // undefined } fn()- 本身,全局声明式函数在调用的时候,函数内部的 this 是指向 window 的
- 在严格模式下,是没有 this 的
ES5 中常见的数组常用方法
- 之前我们讲过的数组常用方法都是 ES3 的方法
- 今天来说一些 ES5 中的方法
indexOf
-
indexOf用来找到数组中某一项的索引 -
语法:
indexOf(你要找的数组中的项)var arr = [1, 2, 3, 4, 5] // 使用 indexOf 超找数组中的某一项 var index = arr.indexOf(3) console.log(index) // 2- 我们要找的是数组中值为 3 的那一项
- 返回的就是值为 3 的那一项在该数组中的索引
-
如果你要找的内容在数组中没有,那么就会返回 -1
var arr = [1, 2, 3, 4, 5] // 使用 indexOf 超找数组中的某一项 var index = arr.indexOf(10) console.log(index) // -1- 你要找的值在数组中不存在,那么就会返回 -1
forEach
-
和 for 循环一个作用,就是用来遍历数组的
-
语法:
arr.forEach(function (item, index, arr) {})var arr = [1, 2, 3] // 使用 forEach 遍历数组 arr.forEach(function (item, index, arr) { // item 就是数组中的每一项 // index 就是数组的索引 // arr 就是原始数组 console.log('数组的第 ' + index + ' 项的值是 ' + item + ',原始数组是', arr) })- forEach() 的时候传递的那个函数,会根据数组的长度执行
- 数组的长度是多少,这个函数就会执行多少回
map
-
和 forEach 类似,只不过可以对数组中的每一项进行操作,返回一个新的数组
var arr = [1, 2, 3] // 使用 map 遍历数组 var newArr = arr.map(function (item, index, arr) { // item 就是数组中的每一项 // index 就是数组的索引 // arr 就是原始数组 return item + 10 }) console.log(newArr) // [11, 12, 13]
filter
-
和 map 的使用方式类似,按照我们的条件来筛选数组
-
把原始数组中满足条件的筛选出来,组成一个新的数组返回
var arr = [1, 2, 3] // 使用 filter 过滤数组 var newArr = arr.filter(function (item, index, arr) { // item 就是数组中的每一项 // index 就是数组的索引 // arr 就是原始数组 return item > 1 }) console.log(newArr) // [2, 3]- 我们设置的条件就是
> 1 - 返回的新数组就会是原始数组中所有
> 1的项
- 我们设置的条件就是
评论留言:
昵称: