function,是被设计为执行特定任务的代码块
4.1 函数使用
function 函数名(){
// 函数体
}
函数名()
函数命名规范:
和变量命名基本一致
尽量小驼峰式命名法
前缀应该为动词
函数调用:函数名()
<script> /* // 函数声明 function sheet99() { // 1.外层循环控制行数 for (let i = 1; i < 10; i++) { // 2.里层循环控制列数 for (let j = 1; j <= i; j++) { document.write(` ${j}X${i}=${i * j}`) } // 换行 document.write('<br>') } } // 函数调用 sheet99() sheet99() */ /* // 1.函数声明 function sayHi() { console.log('hi~~~') } // 2.函数调用 sayHi() */ /* function getSum(){ let num1=+prompt('请输入第一个数:') let num2=+prompt('请输入第二个数:') console.log(num1+num2) } getSum() */ function getSum(){ let sum=0 for(let i=1;i<=100;i++){ sum+=i } console.log(sum) } getSum() </script>
4.2 函数传参
函数名(参数)
<script> function getSum(start,end){ let sum=0 for(let i=start;i<=end;i++){ sum+=i } console.log(sum) } getSum(1,50) </script> <script> // 求 n~m 的累加和 function getSum(n=0,m=0){ let sum=0 for(let i=n;i<=m;i++){ sum+=i } console.log(sum) } let num1=+prompt('请输入起始值:') let num2=+prompt('请输入结束值:') getSum(num1,num2) </script>
4.3 函数返回值
函数体中使用return关键字能将内部的执行结果交给函数外部使用
return后面的代码不会被执行,所以return后面的数据不要换行写
return函数可以没有return,这种情况默认返回值为undefined
return只能返回一个值,如果想要返回多个值,则用数组的中括号
<script> // 求数组中的最大值和最小值 function getArrValue(arr) { let max = arr[0] let min = arr[0] for (let i = 1; i < arr.length; i++) { if (max < arr[i]) { max = arr[i] } if (min > arr[i]) { min = arr[i] } } return [max, min] } let newArr = getArrValue([1, 3, 5, 7, 9]) console.log(newArr) </script>
4.4 作用域
全局作用域
局部作用域
变量访问的原则:就近原则,在能够访问的情况下 先局部,局部没有再找全局
4.5 匿名函数
具名函数
function 函数名(){
}
函数表达式:将匿名函数赋值给一个变量,并通过变量名称进行调用,将这个称为函数表达式
var fn=function(){
// 函数体
}
两者区别:具名函数的调用可以写到任何位置,函数表达式必须先声明后调用
立即执行函数:不需要调用,立即执行
方式1 (function() { console.log(11) }) ();
方式2 (function() { console.log(11) }() );
4.6 逻辑中断
<script>
let age=18
console.log(false && age++) //age++不执行,一假则假,中断
console.log(age) //18
let num=20
console.log(true || num++) //num++不执行,一真则真,中断
console.log(num) //20
console.log(11 && 22) //都是真,则返回最后一个值
console.log(33 || 44) //都是真,则返回第一个真值
</script>
4.7 转换为布尔型
显示转换:Boolean(内容)
' ',0,undefined,null,false,NaN转换为布尔值后都是false,其余则为true