ECMA5新增语法与题

ECMA5新增语法与题

严格模式

  • 严格模式:写在哪个作用域下,在哪个作用域下生效;尽量注意不要严格模式写在全局。
  • "use strict"
  • 使用严格模式的好处:
  1. 全局变量声明时,必须加var
  2. 函数内重名属性
  3. arguments对象不允许被动态改变
    当执行以下代码时
  function show(num1, num2){
                num1 = "hello";
                document.write(num1 + ", " + num2 + "<br/>");
                document.write(arguments[0] + ", " + arguments[1]);
            }
            show(10, 20); 

结果是
在这里插入图片描述
如果使用严格模式 **“use strict”**结果是
在这里插入图片描述

  1. 新增保留字:implements, interface, let, package, private, protected, public, static, yield

ECMA5新增数组方法

  • indexOf()
    • 格式:数组.index(item, start);
    • 参数:
      item 任意的数据
      start 下标,可以不传入,默认是0
    • 功能:在数组中查找第一次出现item元素下标,从start开始去查找
    • 返回值: -1 没有查找到 >=0 查找到的元素的下标
             var arr = [10, 20, 30, 40, 50, 20, 30];
             var index = arr.indexOf(50, 2);
             document.write(index);   ------->4
  • reduce 归并
    • 格式: 数组.reduce(function(prev, next, index, arr)
    • 函数参数:
      prev 第一次是下标为0的元素;第二次开始是上一次遍历return的值
      next 从下标1开始,当前遍历到的元素
      arr数组本身
    • 功能: 逐步求到数组中所有元素的和
var arr = [10, 20, 30, 40, 50];
var res = arr.reduce(function(prev, next, index, arr){
    document.write(prev + ", " + next + "<br/>");
    return prev + next;
});
document.write("<br/>" + res);

结果是
在这里插入图片描述

  • forEach 数组遍历
    • 格式: arr.forEach(function(item, index, arr)
    • 参数:
      item 当前遍历到的元素
      index 当前遍历到元素的下标
      arr 数组本身
			var arr = [10, 20, 30, 40, 50];
            arr.forEach(function(item, index, arr){
               document.write(item + ", " + index + ", " + arr + "<br/>");
            });

在这里插入图片描述

         //等效代码
               var arr = [10, 20, 30, 40, 50];
              for(var i = 0; i < arr.length; i++){
                  document.write(arr[i] + ", " + i + "," + arr + "<br/>");
              } 
          // 数组遍历
                    for循环
                    for...in
                    forEach (ECMA5新增)
  • map 映射
    • 格式: arr.map(function(item, index, arr)
    • 参数:
      item 当前遍历到的元素
      index 当前遍历到元素的下标
      arr 数组本身
    • 功能: 遍历要做的事情 映射关系
             var arr = [10, 20, 30, 40, 50];
             var newArr = arr.map(function(item, index, arr){
                return item * 1.3;
             });
             document.write(newArr + "<br/>");
             document.write(arr); 

在这里插入图片描述

  • filter 过滤
    • 格式: arr.filter(function(item, index, arr)
    • 参数:
      item 当前遍历到的元素
      index 当前遍历到元素的下标
      arr 数组本身
    • 功能: 过滤掉指定元素
                var arr = [10, 20, 30, 40, 50];
                var newArr = arr.filter(function(item, index, arr){
                    //过滤的条件
                    return item > 20;
                });
             document.write(newArr + "<br/>");
             document.write(arr); 

在这里插入图片描述

  • some 某些
    • 格式: arr.some(function(item, index, arr)
    • 参数:
      item 当前遍历到的元素
      index 当前遍历到元素的下标
      arr 数组本身
    • 功能: 在数组中查找是否有符合条件的元素,有返回true,没有返回false
    • 短路操作:只要找到符合条件的元素,后面的循环就停止了
                var arr = [10, 20, 30, 40, 50];
                var res = arr.some(function(item, index, arr){
                    document.write(item + "&nbsp");
                    //过滤的条件
                    return item > 20;
                });
				document.write(res + "<br/>");
				document.write(arr); 

在这里插入图片描述

  • every 每一个
    • 格式: arr.every(function(item, index, arr)
    • 参数:
      item 当前遍历到的元素
      index 当前遍历到元素的下标
      arr 数组本身
    • 功能: 在数组中查找每一个元素是否有符合条件,符合返回true,不符合返回false
    • 短路操作:只要找到不符合条件的元素,后面的循环就停止了
                var arr = [10, 20, 30, 40, 50];
                var res = arr.every(function(item, index, arr){
                    document.write(item + "&nbsp");
                    //过滤的条件
                    return item < 100;
                });
				document.write(res + "<br/>");
				document.write(arr);

在这里插入图片描述

在这里插入图片描述

int lengthOfLongestSubstring(char * s){
    if (s[0] == '\0') return 0;
    else{
            int i, j, k, max = 1, min, flag = 1, mark = 0;
            for (i = 0; s[i] != '\0'; i++){
                min = 1;
                flag = 1;
                for (j = i+1; s[j] != '\0'; j++){
                    for (k = i; k < j; k++)
                    {
                        if (s[j] == s[k]){
                            flag = 0;
                            break;
                        }
                    }
                    if (flag == 0){
                        break;
                    }
                    else{
                        min++;
                    }
                }
                if (max < min){
                    max = min;
                }
            }
            return max;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值