part4 函数
part4 函数
1.函数的目的:
将多次使用的公共代码抽取并封装,方便使用(代码复用)
2.函数使用
函数声明
声明语法
function 函数名(){
函数体
}
命名规范:
- 和变量命名要求类似
- 尽量小驼峰
- 前缀动词
调用语法
函数名()
3.函数传参
声明语法
function 函数名(参数列表){
函数体
}
调用语法
函数名(传递的参数列表)
getsum(10,20)
tips:
- 形参:声明函数时写在右边小括号里的参数(形式参数)
- 实参:调用函数时写在右边小括号里的参数(实际参数)
4.函数返回值
概念:当调用某个函数,这个函数会 返回一个结果 出来
function getSum(x,y){
return x+y
//函数体会返回x+y的值
}
let num = getSum(10,30)
document.write(num)
//返回值的结果为20
细节补充:
- return后面的数据不能换行写
- return后面的语句不会执行
- 没有return的函数默认返回为 undifined
- 两个相同函数:后面会覆盖前面的函数
- 参数问题
- 形参过多:未填充的=undefined
- 实参过多:多填充的=被忽略
- break无法结束函数
5.作用域
- 全局作用域
- 全局有效
- 能在全局内访问和修改
- 局部作用域
- 局部有效
- 只能在局部访问和修改
****如果函数内部,变量没有声明,直接赋值,也当全局变量看,但不推荐****
function fn(){
num = 10
}
f()
console.log(num)
// num可以被顺利打印
访问原则:能够访问到的情况下,先局部,局部没有再找全局变量
6.匿名函数
- 具名函数
- 声明
function fn(){}
- 调用
fn()
- 调用可以写到任意位置
- 声明
- 匿名函数:
function() {}
- 必须先声明后调用
匿名函数
使用方法
1. 函数表达式
将匿名函数赋值给一个变量,并且通过变量名称进行调用 我们将这个称为 函数表达式
let fn = function() {
//函数体
}
2.立即执行函数
作用:
立即执行防止变量污染
语法:
(function () {console.log(11)})();
(function () {console.log(12)})()
//相邻的两个立即执行函数中间加分号
7. 逻辑中断
默认参数的两种写法:
一:
function fn(x=0,y=0){
函数体
}
二:
function fn(x,y){
x = x || 0 //左边x如果不是undifined(false)则不运行x=0反之则运行
y = y || 0
console.log(x+y)
//输出为0
}
逻辑中断原理:
短路:只存在于&&(与)和||(或)中,当满足一定条件会让右边的代码不执行
符号 | 短路条件 | 特殊情况 |
---|---|---|
&& | 左边为false短路 | 两边都为真:输出最后一个真值 |
|| | 左边为true短路 | 两边都为真:输出第一个真值 |
一般用于变量赋值 |
转化为boolean类型
显示转换:
- boolean(内容)
- ”,0,undefined,null,false,NaN = false
- 其余 = true