JS-ES5

目录

严格模式

ES5新增的数组的方法:

数组方法(都是遍历数组的新方法)

(回调函数里的形参不必都写3个,后两个可以省略不写)

forEach  (遍历数组)

map 映射

filter 过滤器 (遍历数组,起到筛选作用)

some 方法

every 方法


严格模式

字符串 " use strict";

严格模式按作用域分为全局严格模式, 局部(函数内)严格模式;

开启严格模式 要求:必须在当前作用域的第一行(除了注释之外);

严格模式下,注意以下几点:

  • 声明变量必须使用var ;
  • 不能删除已经定义好的变量(delete 变量);
  • 严格模式下全局作用域中函数中的thisundefined

  • 函数的形参不可以重名 ;
  • 不可以使用八进制 0开头的;(但是可以0o开头);
  • 不可以使用关键字,保留字作为变量名 ;
  • 不能使用eval函数(eval是一个函数 它可以把字符串当做代码执行;严格模式下 eval依然可用 只是为eval单独生成了一个作用域;var num = eval('1 + 2'); console.log(num) // 3);
  • 不能使用arguments.【i】;
  • 不能使用with (混淆了变量和属性的边界


ES5新增的数组的方法:

数组方法(都是遍历数组的新方法)

(回调函数里的形参不必都写3个,后两个可以省略不写)

forEach  (遍历数组)

arr.forEach(handler);//参数是一个函数,这个函数有三个参数,分别是 数组成员,下标,原数组;

handler(value, index, self):  处理函数(是一个回调函数)

value: 每个数组成员;

index: 索引号;

self: 原数组;

var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
arr.forEach(function(value, index, self) {
  console.log(value, index, self)
})

输出值是:

map 映射

map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。

返回值 return : 一个由原数组每个元素执行回调函数的结果组成的新数组.

arr.map(handler);

handler(value, index, self): 是处理函数

value: 成员

index: 索引

self: 原数组

返回值:return 新数组 取决于handler的返回值

var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
var arr1 = arr.map(function (value, index, self) {
  return value + "1";
})
console.log(arr1)
输出结果:

filter 过滤器 (遍历数组,起到筛选作用)

通过return进行判断, 会返回一个新数组,所以要定义一个变量接收;

arr.filter( handler);

handler(value, index, self): 处理函数(是个回调函数)

value: 每个数组成员

index: 索引号

self: 原数组

返回值:返回一个新数组, 取决于handler的返回值;

var arr = [
  { type: "大菜", name: "鱼香肉丝", price: 10 },
  { type: "大菜", name: "红烧肉", price: 10 },
  { type: "大菜", name: "香辣粉", price: 10 },
  { type: "中菜", name: "小炒肉", price: 13 },
  { type: "中菜", name: "云吞", price: 14 },
  { type: "小菜", name: "雪糕", price: 15 },
  { type: "小菜", name: "黄瓜", price: 16 }
]

var arr1 = arr.filter(function(value) {
  return value.price < 13
})
console.log(arr1)

some 方法

遍历数组,查找数组中是否有满足条件的元素;return返回的是布尔值;

找到立即中断循环,返回true; 否则,找不到,返回false;

arr.some(handler)

handler(value, index, self): 是处理函数(回调函数)

value: 成员

index: 索引

self: 原数组

返回值:布尔值 取决于handler的返回值,如果有任何一个符合条件的,为真; 都不符合,为假。

  <script>
      var arr = [10, 12, 43, 68, 96, 34, 23];
      var arr1 = arr.some(function (a) {
        return a > 36;
      });
      console.log(arr1);
    </script>

every 方法

循环数组内的所有元素,检测每个元素是否都能通过某个指定函数的检测。它返回一个布尔值。

arr.every(handler)

handler(value, index, self): 处理函数

value: 每个成员

index: 索引号

self: 原数组

返回值:布尔值 取决于handler的返回值,如果全部符合条件的,为真有任一不符合,为假。

若收到一个空数组,此方法在一切情况下都会返回 true

 <script>
      var arr = [12, 33, 23, 56, 5];
      var arr1 = arr.every(function (value, index, selft) {
        return value > 4;
      });
      console.log(arr1); //true
-------------------------------------------------
        //空数组任何时候,every方法都为true;
      var newArr = [];
      var newArr1 = newArr.every(function (a, b, c) {
        return a > 123;
      });
      console.log(newArr1); //true
    </script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值