ES5语法的扩展

1.使用严格模式

//严格模式分为全局的与函数的
"use strict"; //使用严格模式

2.数组的扩展

<script type="text/javascript">

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

    //indexOf获取数组中当前值在数组中的第一个值的下标
    console.log(arr.indexOf(4)); //输出为1
    console.log(arr.lastIndexOf(4)); //输出为6

    //遍历数组的值
    arr.forEach(function (value, index) {
        console.log(value,index)
    });

    console.log(arr.includes(5)); //数组内是否包含5这个值

    //遍历数组的值 并返回一个新的数组
    var arr1 = arr.map(function (value) {
        return value + 10; //在遍历的数组的每一个值的基础上加10
    });
    console.log(arr1); //[12, 14, 13, 12, 15, 16, 14, 11, 13]

   // var arr1 = arr.map(value => value + 10);//在遍历的数组的每一个值的基础上加10

    //遍历数组的值 并过滤满足条件的值 返回一个新的数组
    var arr2 = arr.filter(function (value) {
        return value>3;
    });
    console.log(arr2); // [4, 5, 6, 4]

</script>

3.Function的扩展--bind方法

<script type="text/javascript">

    var obj = {userName:"liuqiang"}

    function foo(data) {
        console.log(this,data)
    }

    foo(11); //当前的this指的是window

    foo.call(obj,11); //当前的this指的是obj

    foo.apply(obj,[11]); //当前的this指的是obj

    //call与apply的区别在于 第二个传参的区别
    //bind与call和apply的区别是在于不会被立即调用

    var bar = foo.bind(obj);
    bar(11); //需要手动调用 当前的this指的是obj

    //bind一般用于回调函数中 列:
    setTimeout(function () {
        console.log(this)  //当前的this指的是obj
    }.bind(obj),2000);
</script>

猜你喜欢

转载自blog.csdn.net/qq_33429583/article/details/80222246
ES5