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>