函数的定义与调用(无返回值)
//函数有参数
function Sum(x,y){
alert(x+y);
}
函数无参数
function Today(){
let d=new Date;
alert(d.toLocaleDateString());//如果函数后面不加括号那么就认为是属性,会出错
}
函数有参数,修改表格对象属性。
function stReName(strName){
ActiveSheet.Name=strName;
}
function test(){
stReName("实例表");
}
函数无参数,使用表格对象方法。
function stDel(){
ActiveSheet.Delete();
}
应用
function rngFormat(cell,intColor){
let rngs=cell.EntireRow;
let rngs2=rngs.Range("a1").Resize(1,WorksheetFunction.CountA(rngs));
rngs2.Interior.ColorIndex=intColor;
}
function 应用1(){
Range("a2:h999").Interior.Pattern=xlPatternNone;
for (let ce of Range("g2:g15")){
if (ce.Value()>=10){
rngFormat(ce,6)
}
}
}
function 应用2(){
Range("a2:f999").Interior.Pattern=xlPatternNone;
for (let ce of Range("f2:f15")){
if (ce.Value()>=100){
rngFormat(ce,3)
}
函数的定义与调用(有返回值)
```javascript
function test(){
Rngs("Sheet1","B2","c").Value2=1000;
}
function Sum(x,y){
return x+y;
}
function Today(){
let d=new Date;
return d.toLocaleDateString();
}
function test2(){
Range("g19").Value2 = Today();
}
function Rngs(shName,strCell,strCol){
let sh=Sheets(shName);
return sh.Range(sh.Range(strCell),sh.Range(strCol + "999999").End(xlUp));
}
应用
function demo(){
let arrScore=[58,69,100,77];
Console.log(Sum(arrScore));//求和
Console.log(Len(arrScore));//计数
Console.log(Avg(arrScore));//平均
Console.log(Max(arrScore));//最大值
Console.log(Min(arrScore));//最小值
}
function Sum(arr){ //求和
let intTotal=0;
for (let intVal of arr){
intTotal +=intVal;
}
return intTotal;
}
function Len(arr){ //计数
return arr.length
}
function Avg(arr){ //平均
return Sum(arr)/Len(arr)
}
function Max(arr){ //最大值
return Math.max(...arr)
}
function Min(arr){ //最小值
return Math.min(...arr);
}
匿名函数-函数表达式
匿名函数,就是没有函数名称。
let f1=function(x,y){return x+y}; //赋值给变量
console.log(f1(1,2));
console.log(function(x,y){return x+y}(1,3)); //立即调用
let arr=[4,1,7,2,5];
arr.sort(function(x,y){return x-y}); //作为其他函数的参数
let f2=function(x,y){let z=x+y;let n=z*10;return n} //函数中可以有多条语句
console.log(f2(3,4))
更简化的匿名函数-箭头函数
箭头函数是更简化的匿名函数。箭头函数非常适合作为值传给其他函数,比如数组中的map(),filter(),reduce()等方法。
const sum1=(x,y)=>{let z=x+y;return z};//有多条语句
console.log(sum1(5,6))
const sum2=(x,y)=>x+y;//只有一条return语句
console.log(sum2(8,9));
const sum3=x=>x+10;//只有一个参数
console.log(sum3(100));
const sum4=()=>100+200;//无参数
console.log(sum4())
递归函数
function demo(){
console.log(sum(4))
}
function sum(n){
if (n==1){
return 1
}else{
return sum(n-1)+n
}
}
自定义函数之可选参数
在JS宏里,声明一个函数可以定制多个参数,与此同时,你在调用该函数的时候不需要传入所有的参数,它就能正常执行,原因在于这些参数默认已设定好了。
function CardID(id,type="sex"){
switch (type){
case "sex":{
if (id[16]%2==1){
return "男";
}else{
return "女";
}
}
case "year":{
return `${id.slice(6,10)}年`;
}
}
}
自定义函数之变长参数
如果自定义的函数参数个数不定,则可以使用…args的方式,args是一个数组,可以获取不同参数的值。
function sum(...arr){
let intNum=0;
for (let v of arr){
intNum +=v;
}
return intNum;
}
function demo(){
alert(sum(1,2,3));
alert(link("-",233,45,23,456));
}
function link(delemiter,...arr){
return arr.join(delemiter)
}