ES6拓展运算符
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>拓展运算符</title>
</head>
<body>
<script>
// 对数组进行操作,但是并不知道数组长度是多少(未知个数),使用arguments对象
// 1.es5用法:
// 对数组求和
// function getSum(){
// console.log(arguments); //[3,4,5]
// let x = 0;
// for(let i = 0;i < arguments.length;i++){
// x += arguments[i];
// }
// return x;
// }
// // 调用函数
// console.log(getSum(3,4,5)); //12 = 3+4+5
// 2.es6语法
// 扩展运算符(英文的...)
// 使用拓展运算符来替代arguments对象
function getSum(...arr){
console.log(arr); //[3,4,5]
let x = 0;
for(let i = 0;i < arr.length;i++){
x += arr[i];
}
return x;
}
console.log(getSum(3,4,5)); //12
// 3.
{
let arr1 = [1,2,3];
// 复制指针
// let arr2 = arrr1; //只是复制指针,而不是复制数组
// 复制数组
// let arr2 = arr1.concat();
}
// 4.
{
let arr = [1,2,3];
//复制数组
let arr1 = [...arr];
console.log(arr1); //[1, 2, 3]
// 复制数组
let [...arr2] = arr;
console.log(arr2); //[1, 2, 3]
}
// 5.合并数组
// ...会将数组的内容全部输出,并不是所谓的数组结合,相当于for循环拿了一遍数据
{
let arr1 = [13,34,35,5];
let arr2 = ["a","b","c"];
// es5 拼接
let newArr1 = arr1.concat(arr2);
console.log(newArr1); //[13, 34, 35, 5, "a", "b", "c"]
// es6 拼接
let newArr2 = [...arr1,...arr2];
console.log(newArr2); //[13, 34, 35, 5, "a", "b", "c"]
// 字符串转数组
// es6
let newArr3 = [..."这是一段文字"];
console.log(newArr3); //["这", "是", "一", "段", "文", "字"]
let str = "这是一段文字";
let newArr4 = [...str];
console.log(newArr4); //["这", "是", "一", "段", "文", "字"]
// 拓展对象
let obj = {
name:'Jack',
sex:'男',
age:20
}
let newObj = {...obj};
console.log(newObj); //{name: "Jack", sex: "男", age: 20}
}
</script>
</body>
</html>