javascript教程
教程:https://www.cnblogs.com/moumoon/p/10990698.html
1.概述
函数的声明
JavaScript有三种声明函数的方法。
(1)function命令
function命令声明的代码区块,就是一个函数。function命令后面是函数名,函数名后面是一对圆括号,里面是传入函数的参数。函数体放在大括号里面。
functionprint(s){
console.log(s);
}
上面的代码命名了一个print函数,以后使用print()这种形式,就可以调用相应的代码。这叫做函数的声明(FunctionDeclaration)。
(2)函数表达式
除了用function命令声明函数,还可以采用变量赋值的写法。
varprint=function(s){
console.log(s);
};
这种写法将一个匿名函数赋值给变量。这时,这个匿名函数又称函数表达式(FunctionExpression),因为赋值语句的等号右侧只能放表达式。
采用函数表达式声明函数时,function命令后面不带有函数名。如果加上函数名,该函数名只在函数体内部有效,在函数体外部无效。
varprint=functionx(){
console.log(typeofx);
};
x
//ReferenceError:xisnotdefined
print()
//function
上面代码在函数表达式中,加入了函数名x。这个x只在函数体内部可用,指代函数表达式本身,其他地方都不可用。这种写法的用处有两个,一是可以在函数体内部调用自身,二是方便除错(除错工具显示函数调用栈时,将显示函数名,而不再显示这里是一个匿名函数)。因此,下面的形式声明函数也非常常见。
varf=functionf(){};
需要注意的是,函数的表达式需要在语句的结尾加上分号,表示语句结束。而函数的声明在结尾的大括号后面不用加分号。总的来说,这两种声明函数的方式,差别很细微,可以近似认为是等价的。
(3)Function构造函数
第三种声明函数的方式是Function构造函数。
varadd=newFunction(
‘x’,
‘y’,
‘returnx+y’
);
//等同于
functionadd(x,y){
returnx+y;
}
上面代码中,Function构造函数接受三个参数,除了最后一个参数是add函数的“函数体”,其他参数都是add函数的参数。
你可以传递任意数量的参数给Function构造函数,只有最后一个参数会被当做函数体,如果只有一个参数,该参数就是函数体。
varfoo=newFunction(
‘return”helloworld”‘
);
//等同于
functionfoo(){
return’helloworld’;
}
Function构造函数可以不使用new命令,返回结果完全一样。
总的来说,这种声明函数的方式非常不直观,几乎无人使用。
函数的重复声明
如果同一个函数被多次声明,后面的声明就会覆盖前面的声明。
functionf(){
console.log(1);
}
f()//2
functionf(){
console.log(2);
}
f()//2
上面代码中,后一次的函数声明覆盖了前面一次。而且,由于函数名的提升(参见下文),前一次声明在任何时候都是无效的,这一点要特别注意。
阮一峰javascript标准参考教程
向java的main()传入很多参数
项目中有一些用java写成的可执行的工具,需求调用者传入很多的参数.最开始,我使用的是最传统的方法,直接一个传入参数数组,所以有如下这么壮观的代码:publicstaticvoidmain(S…
FreeMarker语法2
FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成:1,文本:直接输出的部分2,注释:格局部分,不会输…
android监听去电完成ip拨号播送接收者
利用播送完成ip拨号布局文件:
mysql获取当时日期及格局化
MYSQL获取当时日期及日期格局获取体系日期:NOW()格局化日期:DATE_FORMAT(date,format)注:date:时刻字段format:日期格局返回体系日期,输出2009…
POJFindTheMultiple1426(查找)
FindTheMultipleTimeLimit:1000MSMemoryLimit:10000KTotalSubmissions:22576Accepted:929…
CodeForces340EIahubandPermutations
容斥原理,组合数.找出有$cnt$个数字还有没放,那么总计划数就是$cnt!$.总计划数里边包含了正确的和非正确的,我们需求将非正确的删去.先删去$1$个数字$a[i]=i$的情况,发现会多删,…
HDU2057A+BAgain
ProblemDescriptionTheremustbemanyA+BproblemsinourHDOJ,nowanewoneiscoming.Giveyo…
20190315xlVBA_删除无用的区域
‘经常遇见天眼查表格文件特别大,原因是使用了整个表格,尽管无法解释为什么,但是经过验证以下代码是凑效的PrivateSubDeleteUselessRegion(ByValshtAsWor…
bootstrap—-屏幕巨细切换