函数
使用
- 声明语法:
function 函数名() {函数体
}
-
命名规范:
- 小驼峰命名法
- 前缀用动词
前缀词:
-
调用
函数名()
函数传参
为了提高函数的灵活性
- 声明语法:
function 函数名(参数列表) {函数体
}
- 调用
函数名(参数)
- 在函数声明时可以对形参进行初始化,这样在调用未传参时不会出现问题
eg:function getSum(num1 = 0, num2 = 0){}
数组:function getSum(arr = []){}
函数返回值
return 数据
补充内容
- 函数名相同,后面覆盖前面
- 参数不匹配
- 实参多于形参:剩余实参不参与计算
- 实参少于形参,会自动填充undefined
eg:1 + undefined = NaN
- 函数结束用return
作用域
- 全局作用域
- 局部作用域(函数内部)
特殊情况:如果函数内部变量没有声明,直接赋值,也当全局变量看,但是强烈不推荐
在能够访问到的情况下,先局部再全局
匿名函数
- 具名函数
可以在任何位置调用 - 匿名函数:没有名字的函数
使用方式: - 函数表达式
把匿名函数赋给一个变量,并通过变量名称进行调用,形参和实参的使用和具名函数相同,后期API会使用
语法格式:
let fn = function (){//函数体
}
调用:
fn() //函数名()
- 立即执行函数
防止变量污染,互不影响
语法格式:
// 第一种写法
(function() {//函数体
})();//第二种写法
(function(){}());
注意:立即执行函数之后必须写分号
逻辑中断
以下写法类似参数的默认值
function getSum(x,y) {x = x || 0y = y || 0console.log(x + y)
}
getSum(1,2)
短路:只存在于&&和||中,通过左边就能得到整个式子的结果,不再执行右边,&&:左边为false就短路,||:左边为true就短路
eg:console.log(11 && 22)
结果为22
console.log(11 || 22)
结果为11
转换为boolean类型
'' 0 undefined null false NaN
转换为布尔值后均为false,其余为true
隐式转换:
- 有字符串的加法均为拼接字符串
- 减法只用于数字,它会使空字符串转换为0
- null经数字转换之后变成0
- undefined经过数字转换之后会变成NaN
例子:
console.log('' - 1) //值为-1
console.log('pink' - 1) //值为NaN
console.log(null + 1) //值为1
console.log(undefined + 1) //值为NaN
console.log(NaN + 1) //值为NaN