add 6.2 and 6.3
This commit is contained in:
parent
7bec5f3111
commit
fcc6ef2a49
47
6.2RestSpread/t.js
Normal file
47
6.2RestSpread/t.js
Normal file
@ -0,0 +1,47 @@
|
||||
console.log("Rest and Spread Operator");
|
||||
|
||||
console.log("Rest Operator");
|
||||
// Rest Operator
|
||||
|
||||
function sumAll(...args){
|
||||
let sum = 0;
|
||||
for(let arg of args){
|
||||
sum += arg;
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
console.log(sumAll(1,2,3,4,5));
|
||||
|
||||
function showName(firstName, lastName, ...titles) {
|
||||
console.log( firstName + ' ' + lastName ); // Julius Caesar
|
||||
|
||||
// 剩余的参数被放入 titles 数组中
|
||||
// i.e. titles = ["Consul", "Imperator"]
|
||||
console.log( titles[0] ); // Consul
|
||||
console.log( titles[1] ); // Imperator
|
||||
console.log( titles.length ); // 2
|
||||
}
|
||||
|
||||
showName("Julius", "Caesar", "Consul", "Imperator");
|
||||
|
||||
console.log("Attention: Rest parameters should be at the end");
|
||||
console.log("Attention: Only one rest parameter is allowed");
|
||||
consoel.log("Attention: Arrow functions do not have 'arguments' object");
|
||||
|
||||
console.log("Spread Operator");
|
||||
// Spread Operator
|
||||
let arr = [3, 5, 1];
|
||||
console.log(Math.max(arr)); // NaN
|
||||
console.log(Math.max(...arr)); // 5
|
||||
let arr1 = [1, -2, 3, 4];
|
||||
let arr2 = [8, 3, -8, 1];
|
||||
console.log(Math.max(...arr1, ...arr2)); // 8
|
||||
let merged = [0, ...arr1, 2, ...arr2];
|
||||
console.log(merged);
|
||||
|
||||
console.log("Attention: Spread operator can be used to merge arrays");
|
||||
console.log("Attention: Spread operator can be used to convert string to array");
|
||||
console.log("Attention: Spread operator can be used to convert arguments to array");
|
||||
|
||||
|
39
6.3variablescope/t.js
Normal file
39
6.3variablescope/t.js
Normal file
@ -0,0 +1,39 @@
|
||||
|
||||
function sum(a){
|
||||
return function(b){
|
||||
return a + b;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(sum(1)(2));
|
||||
console.log(sum(5)(-1));
|
||||
|
||||
|
||||
function byField(Field){
|
||||
return (a,b) => a[Field] > b[Field]? 1: -1;
|
||||
}
|
||||
|
||||
|
||||
function makeArmy() {
|
||||
let shooters = [];
|
||||
|
||||
let i = 0;
|
||||
while (i < 10) {
|
||||
let id = i;
|
||||
let shooter = function() { // 创建一个 shooter 函数,
|
||||
console.log( id ); // 应该显示其编号
|
||||
};
|
||||
shooters.push(shooter); // 将此 shooter 函数添加到数组中
|
||||
i++;
|
||||
}
|
||||
|
||||
// ……返回 shooters 数组
|
||||
return shooters;
|
||||
}
|
||||
|
||||
let army = makeArmy();
|
||||
|
||||
// ……所有的 shooter 显示的都是 10,而不是它们的编号 0, 1, 2, 3...
|
||||
army[0](); // 编号为 0 的 shooter 显示的是 10
|
||||
army[1](); // 编号为 1 的 shooter 显示的是 10
|
||||
army[2](); // 10,其他的也是这样。
|
Loading…
Reference in New Issue
Block a user