JS函数 | 前端笔记(九)

8.函数

(1)声明和调用

声明语法:
function 函数名() {
函数体
}

调用语法:
函数名()

function sayHi() {
   console.log('hi~~~')
}

sayHi()

备注:

1.函数只声明不调用则不起作用。

2.函数名的前缀一般为动词:can、has、is、get、set、load

(2)函数传参

语法:
function 函数名(参数列表) {
函数体
}

调用:
函数名(传递的参数列表)

function sayHi(name) {
//参数 name 可以被理解成是一个变量
   console.log(name)
}
// 这时相当于为参数 name 赋值了
sayHi('小明')// 结果为 小明

function getSum(num1, num2) {     //num1和num2为形参:形式上的参数  
    document.write(num1+num2)
}
getSum(1, 50)  // 调用的小括号里面的1和50为实参:实际的参数

//可以给一个形参默认值,这样如果不给实参也不会出现underfined+underfined=NaN的情况。
function getSum(x = 0, y = 0) {
    document.write(x + y)
}
getSum()  // 0
(3)函数返回值

通过 return这个关键字,将内部执行结果传递到函数外部,这个被传递到外部的结果就是返回值。

语法:return 数据

function fn() {
   return 20
}
// fn()为调用者 相当于执行了fn() = 20
// return的值返回给调用者
// console.log(fn())
let re = fn()
console.log(re)

function getTotalPrice(x, y) {
    return x + y
// return 后面的代码不会被执行
}
let sum = getTotalPrice(1, 2)
 console.log(sum)

//求任意数组的最大值,并且返回
function getArrValue(arr = []) {
//先准备一个max变量存放数组的第一个值
    let max = arr[0]
    for (let i = 1; i < arr.length; i++) {
        if (max < arr[i]) {
           max = arr[i]
         }
     }
     return max
}
let max = getArrValue([1, 3, 5, 7, 9])
console.log(max)

备注:返回值返回给函数调用者。

(4)函数细节

1.两个相同的函数后面的会覆盖前面的函数。

2.实参个数可以与形参不一样。若形参过多,自动填上underfined,若实参过多,则多余的实参被忽略。

(5)匿名函数
1.函数表达式
// 声明
let fn = function() { 
   console.log('函数表达式')
}
// 调用
fn()

备注:函数表达式和具名函数的不同:

1.具名函数的调用可以写到任何位置,匿名函数不行。

2.函数表达式,必须先声明函数表达式,后调用。

2.立即执行函数
1.(function(){xxx})();

(function (x, y) {
   console.log(x + y)
})(1, 2);

2.(function(){xxxx}());

(function (x, y) {
   console.log(x + y)
}(1, 3));

备注:

1.无需调用,立即执行,其实本质已经调用了。

2.多个立即执行函数之间用分号隔开

(6)逻辑中断

在&&中,如果左边为false则右边不再执行;在||中,如果左边为true则右边不再执行。

let age = 18
console.log(false && age++) // age++ 不执行  一假则假
console.log(true || age++)// age++ 不执行  一真则真

console.log(11 && 22)  // 都是真,这返回最后一个真值
console.log(11 || 22)  //  输出第一个真值
(7)转换为Boolean型

显示转换:’ '、0、underfined、null、false、NaN都为false,其余都是true。

console.log(Boolean(''/0/underfined/null/NaN))   //false

//不打印
if (''/0/underfined/null/NaN) {
    console.log(11)
}                                

隐式转换:

1.有字符串的加法’ '+1结果为1。

2.减法会使’ '转换为0。

3.null数字转换后为0。

4.underfined数字转换后为NaN。

console.log(''-1)               //-1 
console.log('pink'-1)           //NaN
console.log(null+1)             //1
console.log(underfined+1)       //NaN
console.log(NaN+1)              //NaN
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值