<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>函数</title>
</head>
<body>
<script type="text/javascript">
/*函数:具有执行特定功能的代码段
*
* 函数的分类:
* 库函数(系统提供的函数 功能已经实现过了 开发者直接调用即可)
* 自定义函数(开发者自己定义的函数):
*/
/*函数定义的语法结构:
* function 函数名(形式参数){
函数体(实行特定功能的代码段)
}
注:如果没有参数,形式参数可以省略;没有返回值,返回值可以省略.有返回值直接return;
函数名要符合命名规范(与变量命名规范一致):
函数名区分大小写
* */
/******预解析:
* 变量的声明和函数的定义会提前****/
/*根据参数和返回值的有无,可分为4种函数:*/
//1.无参数 无返回值
function sayHi(){
document.write("你好");
}
//函数调用:函数名+()
/*函数不调用,函数体不会执行;*/
/*函数就算没有参数,调用时()不能省*/
sayHi();
//2.有参数 无返回值的函数
/*参数:函数在实现时 所需要的数据
* 形式参数(形参) 在函数定义时的参数
* 实际参数(实参) 在函数调用时传入的参数
* 函数调用时,实参传递给形参(拷贝一份给形参提供给函数体内部使用)
* 参数根据需要可以没有也可以有一个或多个,多个参数逗号间隔
*/
function print(a){
console.log(a);
// alert(a)
}
//调用
print("haha");
function sum(x,y){
console.log(x+y);
}
//调用
sum(3,5);
var a=1,b=5;
sum(a,b);
//3.无参数 有返回值的函数
function getMoney(){
//函数的返回值使用关键字return返回
//return 系统关键字 功能是返回对应的数字 会提前结束函数的执行.只能用在函数内部
return 1000;
//return 后的代码不会执行.
alert(111);
}
//函数调用
console.log(getMoney())
//函数若有返回值 一般要接受其返回值
var m= getMoney();
// alert(m)
//4.有参数 有返回值
function maxValue(x,y){
return x>y?x:y;
}
var max= maxValue(3,5);
// alert(max);
//求三个数的最大值
/*函数的嵌套调用:
在函数内部调用另一个函数
* */
function maxThree(x,y,z){
return maxValue(maxValue(x,y),z);
}
var Max=maxThree(3,5,8);
// alert(Max)
//求4个数
function maxfour(x,y,z,m){
return maxValue(maxThree(x,y,z),m);
}
var mm=maxfour(2,4,6,8);
// alert(mm)
//定义函数:[a,b]随机数
function randNum(a,b){
return Math.floor(Math.random()*(b-a+1)+a)
}
randNum(1,50);
/*函数的特点 封装
* 把特定功能的代码块封装 使用方便(直接调用即可)
* 提高代码的复用性
*
*/
/*匿名函数
* 没有函数名的函数
*/
//定义一个匿名函数
/* ( function (参数){
函数体
})(匿名函数后加小括号代表调用)*/
( function (){
console.log("hello");
})();
//有参数的匿名函数:
(function(str){
console.log(str);
})("nick");
/*函数的实参可以比形参多*/
function sumValue(){
console.log(arguments);
var sum=0;
for (var i = 0; i < arguments.length; i++) {
sum+=arguments[i];
}
return sum;
}
var s= sumValue(2,4,5,7);
// alert(s);
/*函数内的关键字
* arguments: 将实参存储在调用函数时传入的所有参数;
* 在用的时候只能在函数内部使用
* 类数组 (只能获取其中的元素 不能做增加删除插入等修改操作)
*
*/
/*...rest参数
...rest参数只能写在后面,前面...标识,调用函数时,传入的参数先绑定,多余的参数以数组的形式存储到rest中
ES6中新增的,部分浏览器目前不支持
开发中一般不用
* */
// function getValue(a,...nums){
// console.log(nums.length);
// for(var i=0;i<nums.length;i++){
// console.log(nums[i]);
// }
//
// }
//getValue(1,2,3,4)
</script>
</body>
</html>
<html>
<head>
<meta charset="UTF-8">
<title>函数</title>
</head>
<body>
<script type="text/javascript">
/*函数:具有执行特定功能的代码段
*
* 函数的分类:
* 库函数(系统提供的函数 功能已经实现过了 开发者直接调用即可)
* 自定义函数(开发者自己定义的函数):
*/
/*函数定义的语法结构:
* function 函数名(形式参数){
函数体(实行特定功能的代码段)
}
注:如果没有参数,形式参数可以省略;没有返回值,返回值可以省略.有返回值直接return;
函数名要符合命名规范(与变量命名规范一致):
函数名区分大小写
* */
/******预解析:
* 变量的声明和函数的定义会提前****/
/*根据参数和返回值的有无,可分为4种函数:*/
//1.无参数 无返回值
function sayHi(){
document.write("你好");
}
//函数调用:函数名+()
/*函数不调用,函数体不会执行;*/
/*函数就算没有参数,调用时()不能省*/
sayHi();
//2.有参数 无返回值的函数
/*参数:函数在实现时 所需要的数据
* 形式参数(形参) 在函数定义时的参数
* 实际参数(实参) 在函数调用时传入的参数
* 函数调用时,实参传递给形参(拷贝一份给形参提供给函数体内部使用)
* 参数根据需要可以没有也可以有一个或多个,多个参数逗号间隔
*/
function print(a){
console.log(a);
// alert(a)
}
//调用
print("haha");
function sum(x,y){
console.log(x+y);
}
//调用
sum(3,5);
var a=1,b=5;
sum(a,b);
//3.无参数 有返回值的函数
function getMoney(){
//函数的返回值使用关键字return返回
//return 系统关键字 功能是返回对应的数字 会提前结束函数的执行.只能用在函数内部
return 1000;
//return 后的代码不会执行.
alert(111);
}
//函数调用
console.log(getMoney())
//函数若有返回值 一般要接受其返回值
var m= getMoney();
// alert(m)
//4.有参数 有返回值
function maxValue(x,y){
return x>y?x:y;
}
var max= maxValue(3,5);
// alert(max);
//求三个数的最大值
/*函数的嵌套调用:
在函数内部调用另一个函数
* */
function maxThree(x,y,z){
return maxValue(maxValue(x,y),z);
}
var Max=maxThree(3,5,8);
// alert(Max)
//求4个数
function maxfour(x,y,z,m){
return maxValue(maxThree(x,y,z),m);
}
var mm=maxfour(2,4,6,8);
// alert(mm)
//定义函数:[a,b]随机数
function randNum(a,b){
return Math.floor(Math.random()*(b-a+1)+a)
}
randNum(1,50);
/*函数的特点 封装
* 把特定功能的代码块封装 使用方便(直接调用即可)
* 提高代码的复用性
*
*/
/*匿名函数
* 没有函数名的函数
*/
//定义一个匿名函数
/* ( function (参数){
函数体
})(匿名函数后加小括号代表调用)*/
( function (){
console.log("hello");
})();
//有参数的匿名函数:
(function(str){
console.log(str);
})("nick");
/*函数的实参可以比形参多*/
function sumValue(){
console.log(arguments);
var sum=0;
for (var i = 0; i < arguments.length; i++) {
sum+=arguments[i];
}
return sum;
}
var s= sumValue(2,4,5,7);
// alert(s);
/*函数内的关键字
* arguments: 将实参存储在调用函数时传入的所有参数;
* 在用的时候只能在函数内部使用
* 类数组 (只能获取其中的元素 不能做增加删除插入等修改操作)
*
*/
/*...rest参数
...rest参数只能写在后面,前面...标识,调用函数时,传入的参数先绑定,多余的参数以数组的形式存储到rest中
ES6中新增的,部分浏览器目前不支持
开发中一般不用
* */
// function getValue(a,...nums){
// console.log(nums.length);
// for(var i=0;i<nums.length;i++){
// console.log(nums[i]);
// }
//
// }
//getValue(1,2,3,4)
</script>
</body>
</html>