JS03-函数
函数
使用函数
// 函数声明function sayHi(){document.write(`Hello!<br>`)}for(let i = 1; i <= 6; i++){// 函数调用sayHi()}
函数封装
function getScore(arr){sum = 0for( let i = 0; i < arr.length; i++){sum += arr[i]}document.write(sum)}getScore([99, 66, 100])
函数返回多个值
function getArrMaxMin(arr){let max = arr[0]let min = arr[0]for(let i = 0; i < arr.length; i++){if(max < arr[i]){max = arr[i]}if(min > arr[i]){min = arr[i]}}return [max, min]}let value = getArrMaxMin([1,2,7,3,8,4,9])document.write(`最大值:${value[0]},最小值:${value[1]}`)
匿名函数
<button>点击我</button><script>let fn1 = function () {// 函数表达式console.log(11)}let fn2 = function (x,y) {console.log(x+y)}fn1()fn2(1,3)let btn = document.querySelector('button')btn.addEventListener('click',function () {alert('一键三连')})</script>
立即执行函数
-
立即执行函数 立即执行,无需调用
-
1 第一个小括号 形参
-
2 第二个小括号 实参
(function(x, y) {
console.log(x + y)
})(1, 3)
let num = 10
;(function() {
- 防止变量污染
let num = 20
console.log('qwe')
}());
(function() {
console.log('qwe')
} ())
- 多个立即执行函数之间用分号隔开;
案例秒转小时分秒
function timeTest() {let h = time / 3600let m = (time / 60) % 60let s = time % 60return [h, m, s]}let time = prompt('请输入秒数')let value = timeTest(time)document.write(`<i>${time}秒转换为${parseInt(value[0])}小时${parseInt(value[1])}分钟${value[2]}秒<i\>`)
伪数组
-
arguments 函数内有效 表现形式 伪数组
-
伪数组比数组少了一些 pop() push()等方法
function fn(){console.log(arguments)let sum = 0for (let i = 0; i < arguments.length; i++){sum += arguments[i]}console.log(sum)}fn(1, 2, 3)