一、定义一个函数的方式(三种)
function命令法
1.语法格式
function 函数名(参数1,参数2,…..){函数体}
2.语法说明:
1)function是定义函数的关键字
2)函数名是标识符,需要遵守标识符命名的规范
3)声明函数的时候,写的参数为形参,可以有多个,也可以没有
4)函数体就是写这个函数要实现的功能代码
//定义一个正向三角
function fun1(a){
for(var i = 0;i < a;i++){
for(var j = 0;j > i;j++){
document.write('*');
}
document.write('<br>')
}
}
fun1(10);
//定义一个反向三角
function fun1(a){
for(var i = 0;i < a;i++){
for(var j = 0;j > i-a;j++){
document.write('*');
}
document.write('<br>')
}
}
fun1(10);
function表达式法
1.语法格式:
Var 变量名 = function(参数1,参数2,…..){函数体}
2.语法说明
1)函数表达式是将一个函数数据类型的值赋值给左边的一个变量
2)函数表达式法一般不写函数名,称为匿名函数,即使给函数起名字,也不能通过名字调用该函数
3)函数表达式法最后写一个分号
使用构造函数
1.语法格式:
Var 变量名 = new Function("参数1","参数2",…..,"函数体");
Var 变量名 = Function("参数1","参数2",…..,"函数体")
2.语法说明;
1)构造函数是JS高级部分学的,后面再去体会构造函数,
Function()就是一个构造函数
2)参数都是字符串类型的,而且最后一个参数是函数体,也得是字符串
3)这种方式创建函数麻烦,不直观。
二、 函数的声明提升
1.函数也有声明提升,类似于变量的声明提升;
2.浏览器在解析我们的代码时,会将函数声明提升到代码的最前面
3.function命令法的声明提升:
fun1();
function fun1(){
console.log('哈哈');
}
等价于
function fun1(){
console.log('哈哈');
}
fun1();
函数的重复声明
1.类似于变量,函数也可以重复声明,可以声明两个名字一样的函数,后面的生效
形参
1.形参:就是指在函数声明时写的参数
2.形参其实就是一个变量,只不过没有写var关键字
3.函数声明的时候,根据实际情况判断是否写形参,以及写多少个,多个参数之间用逗号隔开
4.函数有形参,在调用该函数的时候就需要传递相应个数的参数
实参
1.实参:就是调用函数时实际传入的参数
2.一般,形参有多少个,实参就有多少个,一一对应
3.实参的值赋值给形参
arguments对象
1.arguments是参数的意思
2.arguments对象只能用在函数的声明中,可以用来获取所有的实参
3.获取实参的方法 arguments[0]、arguments[1]
4.对象有属性和方法
5.arguments.length属性表示获取到的实参
//石头剪刀布游戏
// var comCount = 0;
// var userCount = 0;
// while(comCount < 3 && userCount < 3){
// var computer = ~~(Math.random()*((2-0+1)+0));
// var user = Number(prompt("请输入数字0-2"));
// if(user == 0){
// if(computer == 1){
// userCount++
// }else if(computer == 2){
// comCount++
// }
// }else if(user == 1){
// if(computer == 0){
// comCount++
// }else if(computer == 2){
// userCount++
// }
// }else if(user == 2){
// if(computer == 0){
// userCount++
// }else if(computer == 1){
// comCount++
// }
// }
// }
// if(comCount == 3){
// document.write("电脑胜利")
// }else{
// document.write("用户胜利")
// }
//定义一个函数,求圆的面积
// function test(r){
// // console.log(`3.14*${r**2}`)
// console.log(3.14*r**2)
// }
// test(6)
//求两个数的和
function sum(a,b){
console.log('a+b')
}
sum(5,7)
//函数判断一个年份是否是闰年
// var test1 = function (year){
// if(year % 4 == 0 && year % 100 != 0){
// console.log(year+"是闰年")
// }else{
// console.log(year+"是平年")
// }
// }
// test1(2000)
// test1(2001)
//函数判断1990-2000年份哪年是否是闰年
// var test1 = function (year) {
// for (var year = 1990; year <= 2000; i++) {
// if (year % 4 == 0 && year % 100 != 0) {
// console.log(year + "是闰年")
// } else {
// console.log(year + "是平年")
// }
// }
// }
//计算任意数的累加和
// var sum = 0;
// var test1 = function(num){
// for(var i = 1;i<=num;i++){
// sum+=i;
// }
// console.log(num+'的累加和是'+sum)
// }
// test1(6)
//计算1-100之间的偶数和及偶数个数
// var sum=0;
// var count=0;
// var test1 = function(){
// for(var i = 0;i<101;i++){
// if(i%2==0){
// sum+=i;
// count++;
// }
// }
// console.log('100以内的偶数和是'+sum+"偶数个数是"+count)
// }
// test1()
//计算任意值的绝对值
// var test1 = function(num){
// if(num>=0){
// console.log(`${num}`);
// }else{
// console.log(`${-num}`);
// }
// }
// test1(5)
// test1(-5)
//判断任意数是否存在小数部分
var test1 = function(num){
if(~~num == num){
console.log('没有小数部分')
}else{
console.log('有小数部分')
}
}
test1(6.0)
//比较三个数之间的最大值
// var test1 =function(num1,num2,num3){
// var a = num1 > num2 ?num1 > num3 ? num1 :num3 :num2 > num3 ? num2 :num3
// console.log('最大的数是'+a)
// }
// test1(5,7,96)