JavaScript基础-Day4-函数
1.1函数的使用
- 函数的声明语法
function 函数名() {
函数体
}
- 函数的调用语法
函数名()
- 函数体
函数体是函数的构成部分,它负责将相同或相似代码“包裹”起来,直到函数调用时函数体内的代码才 会被执行。函数的功能代码都要写在函数体当中。
1.2函数传参
- 声明语法
function 函数名(传参列表) {
函数体
}
- 有参数的函数声明和调用
函数名(传递的参数列表)
- 形参和实参
形参:声明函数时写在函数名右边小括号里的叫形参(形式上的参数)
实参:调用函数时写在函数名右边小括号里的叫实参(实际上的参数)
求和案例:
<script>
function getSum (arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++){
sum += arr[i]
}
return sum
}
let s = getSum([100,200,300])
document.write(s)
</script>
1.3函数的返回值
用return返回数
- 当函数需要返回数据出去时,用return关键字
- 语法
return 数据
function getSum(x,y) {
return x + y
}
let num = getSum(10,30)
document.write(num)
细节:
- 在函数体中使用 return 关键字能将内部的执行结果交给函数外部使用
- 函数内部只能出现 1 次 return,并且 return 后面代码不会再被执行,所以 return 后面的数据不要换行写
- return会立即结束当前函数
- 函数可以没有 return,这种情况函数默认返回值为 undefined
求最大值案例:
<script>
let num1 = +prompt(`请输入第一个数:`)
let num2 = +prompt(`请输入第二个数:`)
function getMaxNum (x, y) {
if (x > y) {
return x
} else {
return y
}
}
let maxNumber = getMaxNum(num1, num2)
document.write(`最大数是:${maxNumber}`)
</script>
1.4作用域
作用域概述:
- 通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这 个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。
1.JS 中作用域分为三种
- 全局作用域。函数外部或者整个script 有效
- 局部作用域。也称为函数作用域,函数内部有效
- 块级作用域。 { } 内有效
2.根据作用域不同,变量分为三种
全局变量 :函数外部let 的变量,全局变量在任何区域都 可以访问和修改
局部变量:函数内部let的变量,局部变量只能在当前函 数内部访问和修改
块级变量:{} 内部的let变量,let定义的变量,只能在 块作用域里访问,不能跨 块访问,也不能跨函数访 问
1.5匿名函数
具名函数:声明:function fn() {} 调用:fn()
匿名函数 :function() {}
let fn = function () {
//函数体
}
fn() //函数名()
立即执行函
作用:避免全局变量之间的污染
// 方式一
(function () { console.log(11) })();
// 方式二
(function () { console.log(11) }() );
//不需要调用,立即执行
综合案例:转换时间
<script>
let second = +prompt(`请输入总的秒数:`)
function getTimes(t) {
let h = parseInt(t/60/60%24)
let m = parseInt(t/60%60)
let s = parseInt(t%60)
h = h < 10 ? '0' + h : h
m = m < 10 ? '0' + m : m
s = s < 10 ? '0' + s : s
return `转换后的时间是:${h}小时${m}分钟${s}秒`
}
let str = getTimes(second)
document.write(str)
</script>