console.log(add(3,5))// Output is normalfunctionadd(x, y){return x + y;};
console.log(sub(5,3))// sub is not definedconstsub=function(x, y){return x - y;};
1.4 高阶函数
高阶函数:函数作为参数或返回一个参数
1.4.1 示例-计数器 counter
constcounter=function(){let c =0;returnfunction(){return++c;};};const c =counter()
console.log(c())
console.log(c())
console.log(c())
console.log(c())
console.log(c())
Info: Start process(下午7:27:43)12345
Info: End process(下午7:27:43)
constadd=(x, y)=> x + y
console.log(add(4,5))constadd2=(x=6, y)=> x + y
console.log(add2())// NaN add2(undefined, undefined)
console.log(add2(1))// NaN add2(1. undefined)
console.log(add2(y=3, z=2))// 5 add2(3, 2)
console.log(add2(y=3))// NaN add2(3, undefined)
Info: Start process(下午12:53:07)9NaNNaN5NaN
Info: End process(下午12:53:07)
2.2 可变参数(rest parameters 剩余参数)
JS 中使用 … 表示可变参数(Python 用 * 收集多个参数)
constsum=function(...args){let result =0;for(let x in args){
result += args[x];
console.log(args[x])};return result;};
console.log(sum(1,2,3,4,5))
Info: Start process(下午1:15:24)1234515
Info: End process(下午1:15:24)
2.3 arguments 对象
(function(p1,...args){
console.log(p1);
console.log(args);
console.log('='.repeat(55));
console.log(arguments);for(let x in arguments){
console.log(x, arguments[x]);};})('abc',1,3,5)
Info: Start process(下午1:25:17)
abc
[1,3,5]=======================================================[Arguments]{'0':'abc','1':1,'2':3,'3':5}0 abc
112335
Info: End process(下午1:25:17)
Info: Start process(下午1:32:10)1002003001001101555 undefined
NaN
Info: End process(下午1:32:10)
3、函数返回值
Python 中可以使用return 1, 2返回多值,本质上也是一个值,就是一个元组
JS 中返回多值的话,只会返回最后一个值
constadd=(x, y)=>{return x, y};constadd2=(x, y, z)=>{return x, y, z};
console.log("add:",add(1,2))
console.log("add2:",add2(1,2,3))
Info: Start process(下午1:38:28)
add:2
add2:3
Info: End process(下午1:38:28)
3.1 表达式的值
类 C 的语言,都有一个概念 — 表达式的值
赋值表达式的值:等号右边的值
逗号表达式的值:类 C 语言,都支持逗号表达式,逗号表达式的值,就是最后一个表达式的值
a =(x =5, y =6,true)
console.log(a)
b =(123,true, z ='test');
console.log(b)functionc(){return x =5, y =6,true,'ok'};
console.log(c())
console.log((1,2,3))
Info: Start process(下午1:53:44)true
test
ok
3
Info: End process(下午1:53:44)