JS知识点:函数
程序员文章站
2024-03-26 10:10:53
...
1、函数
什么是函数 : 函数就是一个工具
函数就用来代表某个功能的一段代码块,一个函数就是一个功能 、工具
一般反复使用的功能
写到一个函数中
2、函数定义
方式1 :
function 函数名(){ 函数名自定义 注意命名规范
函数体
}
可以在函数定义前或定义后调用
//定义一个函数,功能计算两个数的和
function fnAdd(){
var a = 2 , b = 9;
alert( a + b )
}
fnAdd()
方式2 :
var 函数名 = function(){ 先定义 后调用
}
//定义一个函数 功能是打印3行5列的表格
var fnPrintTable = function(){
document.write("<table border = 1 width = 500>");
for(var i = 1 ; i <= 3 ; i++ ){ //控制行
//打印列
document.write("<tr>");
for(var j = 1 ; j <= 5 ; j++){//控制列
//打印行
document.write("<td>52013114</td>")
}
document.write("</tr>")
}
document.write("<table>")
}
fnPrintTable();
3、函数调用
fn() ,其中fn为函数名
4、函数的参数
参数种类 : 形式参数 和 实际参数(形参和实参)
形参
- 形参出现在函数的定义中
- 形参必须是变量
实参
- 实参出现在函数的调用中
- 实参可以是常量 、 变量 、一个式子 但要求有值
- 参数传递是将一个实参的值传递给形参 参数传递的过程是–对应的
- 如果实参的个数多余形参的个数 多余的实参自动舍弃
- 如果形参的个数多余实参的个数 多余的形参默认值为undefined
// 打印一个表格9行6列
function fnPrintTable(m,n,k){
console.log(k); // undefined
document.write("<table border=1 width=500>");
for(var i = 1; i <= m; i++){ // 控制行
// 打印行
document.write("<tr>");
for(var j = 1; j <= n; j++){ // 控制列
// 打印列
document.write("<td>1111</td>");
}
document.wirte("</tr>");
}
document.write("</table>");
}
var a = 9;
fnPrintTable(a,6); // 函数的调用
5、函数的实参副本
arguments :只能出现在函数体内,是一个对象
arguments.length属性获取实参的个数
在函数体的内部可以通过 函数名.length 获取形参的个数
function fnAdd(){
// arguments内部存储的是实参
// 使用arguments[下标]形式取出实参 下标从0开始 最大下标arguments.length-1
// console.log(arguments[0])
var sum = 0;
for(var i = 0; i < arguments.length; i++){
sum+=arguments[i]; // 取出实参
}
console.log(sum);
}
fnAdd(); // 3
fnAdd(); // 22
fnAdd(); // 110
6、函数的返回值
当用户需要用一个函数的结果处理其他功能时,函数需要有返回值
一个函数如果没有返回值 默认返回值为undefined
函数的返回值使用return 关键字返回
return 只能出现在函数体中
一个函数如果有返回值 返回值只能有一个
一个函数一旦遇到return ,return后面的语句都不执行
// 定义一个函数功能是计算任意一个数的阶乘
function fbFac(m){
var fac = 1;
for(var i = 1; i <= m; i++){
fac *= i;
}
// alert(fac);
// return 10;
// alert(fac);
}
// 计算100-200之间所有素数的和
function fnPrimerSum(){
var sum = 0 ;
for ( var i = 100 ; i <=200 ; i++){
//判断i是否是素数,如果是就累加
var res = isPrimerNumber( i );
if( res ){
sum += i;
}
}
return sum;
}
//alert( fnPrimer( ) );
//输出:100可以拆成哪两个素数的和?
function fnSum(){
//1 99 2 98 3 97 4 96 ......
for( var i = 1 ; i <=50 ; i++){
if(isPrimerNumber (i) && isPrimerNumber( 100 - i)){
console.log( "100可以拆分成" + i +"和"+(100-i))
}
}
}