在JS中,可能会定义非常多的相同代码或功能相似的代码,这些代码可能需要大量重复使用
虽然for也能实现一些简单的重复操作,但是比较有局限性,此时我们就可以用函数
function 函数名(){
//函数体
}
函数名();
//将1-100的和运算代码块封装成函数:
var sum = 0;
for (var i = 0; i <= 100; i++) {
sum += i;
}
console.log(sum);
function getSum(num1, num2) {
var sum = 0;
for (var i = num1; i <= num2; i++) {
sum += i;
}
console.log(sum);
}
getSum(1, 100);

function fun(形参1,形参2...){
}
fun(实参1,实参2...);
- 读到函数体时,先略过,先读取调用语句,然后再返回去读取函数体,此时,再把调用语句中的实参给形参
- 所以,形参是接收实参的,实质上就是给一个变量赋值,可以理解为a=1;a是形参,1是实参,
行参等于是一个不需要声明的变量
* 函数 function
* - 函数也是一个对象
* - 函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码)
* - 函数中可以保存一些代码在需要的时候调用
* - 使用typeof检查一个函数对象时,会返回function
//我们在实际开发中很少使用构造函数var fun = new Function("");来创建一个函数对象
//创建一个函数对象
//可以将要封装的代码以字符串的形式传递给构造函数
//var fun = new Function("console.log('Hello 这是我的第一个函数');");
//封装到函数中的代码不会立即执行
//函数中的代码会在函数调用的时候执行
//调用函数 语法:函数对象()
//当调用函数时,函数中封装的代码会按照顺序执行
//创建:var fun = new Function("console.log('Hello 这是我的第一个函数');");
//调用:fun();
// 向函数中添加一个功能:
// fun.hello="你好";
// 函数对象具有所有普通对象的功能,但比普通对象更强大,他不止可以装属性,还可以装代码片段
/*
* 使用 函数声明 来创建一个函数而不是构造函数来创建对象
* 语法:
* function 函数名([形参1,形参2...形参N]){
* 语句...
* }
*/
* 使用 函数表达式 来创建一个函数,中括号写不写都行
* var 函数名 = function([形参1,形参2...形参N]){
* 语句....
* }
*
* function fun2(){}这是声明函数
* var fun =function(){};这是匿名函数(给一个变量进行赋值),没有名,上面的有名
* 两种写法本质上无区别,上面的不用写分号,下面的匿名函数最好写上分号
*/
var fun3 = function(){
console.log("我是匿名函数中封装的代码");
};
fun3();
网友评论