箭头函数
箭头函数相当于匿名函数,并且简化了函数定义
Arrow Function()
x => xx
上面函数相当于:
function (x){
return xx;
}
如果参数不是一个,就需要用括号()括起来:
无参数:
() => 3.14
两个参数:
(x, y) => x * x + y * y
可变参数:
(x, y, …rest) => {
var i, sum = x + y;
for (i=0; i<rest.length; i++) {
sum += rest[i];
}
return sum;
}
forEach()
对数组中的每个元素执行一次提供的函数
arr.forEach(callback[, thisArg]);
callback:为每个元素执行的函数,该函数接受三个参数
currentValue:数组中正在处理的当前元素
index:可选,数组中正在处理的当前元素的索引
array:可选,forEach() 方法正在操作的数组
(不常用)thisArg:可选,当执行回调函数时用作 this 的值(参考对象)
<script>
var arr = [1,2,3,4,5];
arr.forEach(function(item) {
//遍历数组,弹5个弹窗,依次输出1,2,3,4,5
alert(item);
})
</script>
Map()
创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果
语法:var new_array = arr.map(function callback(currentValue[, index[, array]]) {
// Return element for new_array
}[, thisArg])
callback
<script>
var arr = [1,2,3,4,5,6,7]
var arr1 = arr.map(x=>x*3);
document.write(arr1+'<br>'); //3,6,9,12,15,18,21
var arr2 = arr.map(x=>x);
document.write(arr2+'<br>');
//1
//2
//3
//4
//5
//6
</script>
Math.random()
生成伪随机数(0~1之间,很多位小数)
Math.floor(parameter)
向下取整
<script>
var t = Math.random() * 100;
var t1 = Math.floor(x);
console.log(t1) //返回应该是一位或者两位的随机数字(会重复)
</script>
var new_array = old_array.concat(value1[, value2[, …[, valueN]]])
拼接数组,此方法不会更改现有数组,而是返回一个新数组
<script>
var q1 = [1,2,3];
var q2 = [4,5,6];
var q3 = [7,8,9];
var c = q3.concat(q1.concat(q2));
console.log(c); //[7,8,9,1,2,3,4,5,6],c是新数组,此时内存使用有,q1,q2,q3,c四个数组
</script>
合并数组但不新建数组的方法
var a = [1,2,3];
var b = [4,5,6];
for(var i=0;i<b.length;i++){
a.push(b[i]);
}
b=null; //没有新的数组创建,对于内存来说更优。注意到结尾的b=null;拼接完成后将数组b清空。
console.log(a); //[1,2,3,4,5,6]
console.log(b); //null
a.push(…b)
var a = [1,2,3];
var b = [4,5,6];
cc.push(...dd);
var t = cc.push(...dd);
document.write(a.push(...b));
console.log(t);
//[1,2,3,4,5,6,4,5,6](这里执行了两次push),原数组中,a[]会发生改变,
//第一次 push结果是[1,2,3,4,5,6];第二次打印时又执行一次push,
//结果是[1,2,3,4,5,6,4,5,6];b[]在两次执行push操作时都不会发生改变
//这里的t是一个长度,就是数组拼接后的长度
str.trim()
方法会从一个字符串的两端删除空白字符
在vue.js+element中用法:v-model.trim=“formInline.input”
三元表达式
这个例子中:
三个判断条件:0,1,2
首先判断v.sex === ‘0’ 是否成立,若成立,则v.sex=‘未知’;
若不成立,判断 v.sex === '1’是否成立,若成立,则v.sex=‘男’;
若不成立,则v.sex=‘女’;
this.tableData.forEach(v => {
v.sex = v.sex === '0' ? '未知' : (v.sex = v.sex === '1' ? '男' : '女')
})
join()
用来将数组转换为字符串,不改变原数组,返回转换后的字符串
var a = [1,2,3,4,5];
console.log(a.join(’,’)) // 1,2,3,4,5
console.log(a) // [1,2,3,4,5]