函数
为什么需要函数
- function,函数,是被设计为执行特定任务的代码块
- 精简代码,方便复用,提高开发效率
函数的使用
- 函数的声明
function 函数名(){
函数体
}
- 函数的命名规范
- 和变量名基本一致
- 尽量使用小驼峰命名法
- 前缀应为动词
- 函数的调用:
函数名()
函数的传参
- 声明语法
function 函数名(参数列表){
函数体
}
- 参数列表
- 传入数据列表
- 声明这个函数需要传入几个参数
- 多个数据用
,
隔开
- 例如
// 形参:形式上的参数
function fn(start, end) {
let sum = 0;
for (var i = start; i <= end; i++) {
sum += i;
}
console.log(sum);
}
// 实参:实际上的参数
fn(1, 5);
- 参数默认值:
function fn(start=0, end=0) {}
,默认值只会在缺少实参时才有效
函数的返回值
- 关键字:
return
- return后的代码不会再被执行,
return不能换行写
- 函数没有return时,默认返回undefined
断点调试
- F10:逐过程,不进入函数体;
- F11:逐步调试,进入函数体
作用域
- 作用域是指在程序中变量、函数和对象的可访问性范围
- 全局作用域:在整个程序中都可以访问的变量。对应全局变量
- 函数作用域(局部作用域):在函数内部声明的变量,仅在该函数及其子函数中可用。对应局部变量
- 块作用域:在
{}
包裹的范围内可用
- 注意:
- 如果函数内部,变量没有声明直接赋值,也当
全局变量
看
- 函数内部的形参可以看做
局部变量
- 变量访问原则:
就近原则
匿名函数
- 函数表达式:
- 声明:
let fn=function(){}
- 调用:
fn()
- 具名函数与函数表达式区别:具名函数的调用可以写在函数声明之前,也可以写在函数声明之后;函数表达式必须先声明后调用。
- 立即执行函数:必须加
;
结束 // 第一中写法
(function(a,b){
console.log(a+b)
console.log('我是立即执行函数')
})(1,2);
// 第二种写法
(function(a,b){
console.log(a+b)
console.log('我是立即执行函数')
}(1,2));
逻辑中断
符号 |
短路条件 |
&& |
左边为false就短路 |
|| |
左边为true就短路 |
// 逻辑与 &&
// 1. 如果第一个表达式为真,则返回第二个表达式
console.log(1 && 2); //2
// 2. 如果第一个表达式为假,则返回第一个表达式
console.log(0 && 2); //0
// 逻辑或 ||
// 1. 如果第一个表达式为真,则返回第一个表达式
console.log(1 || 2); //1
// 2. 如果第一个表达式为假,则返回第二个表达式
console.log(0 || 2); //2
转换为Boolean型
- 语法:
Boolean(内容)
''
、0
、undefined
、null
、false
、NaN
转换后为false,其余都为true