JavaScript 基础 - 第4天笔记(函数)
函数的魅力:代码复用
1、声明与调用
调用:函数名(实参)
2、形参实参注意事项
// 实参形参一一对应,实参不够,多余形参为underfind
// 函数形参可以赋值一个默认值,防止运行报错
// 相当于给形参一个初始默认值,实参传过来,在进行重新赋值,如果没有对于参数传过来,那么形参就为默认值
function getSum(num1=0, num2=0) {
// arguments 是一个伪数组
// console.log(arguments);
console.log(num1 + num2);
}
// 多余实参不会显示
getSum(10, 30,30)
3、返回值return
return返回什么值,函数值就是什么值
function getSum(num1=0,num2=0){
// return关键字后面可以跟值,返回值
return num1+num2
}
let price= getSum(10,30)
console.log(`商品打折后是${price*0.8}`)
console.log(`商品积分加了${price*10}`);
总结:
1、return 关键字能将内部的执行结果交给函数外部使用
2、函数内部只能出现1 次 return,并且 return 下一行代码不会再被执行
3、函数可以没有return,这种情况默认返回值为 undefined
4、作用域
全局作用域:作用于所有代码执行的环境(整个 script 标签内部)或者一个独立的 js 文件;处于局部作用域内的变量称为局部变量。
局部作用域:作用于函数内的代码环境(函数内部的形参可以看做是局部变量)
变量访问原则:就近原则
5、匿名函数(匿名函数必须先声明后使用)
函数可以分为具名函数和匿名函数
匿名函数:没有名字的函数,无法直接使用。
// 声明
let fn = function() {
console.log('函数表达式')
}
// 调用
fn()
立即执行函数
作用:避免全部变量的冲
(function(){ xxx })();
(function(){xxxx}());
//避免全部变量的冲突
//将所有外部js用立即执行函数包裹起来,这个js文件里面的所有变量都会变成立即执行函数变量
// 第一种:
(function () {
alert("我是第一个立即执行函数")
})();
// 多个匿名函数之间要用分隔符号隔开,否则代码会将前后括号识别在一起
// 第二种
(function () {
alert("我是第二个立即执行函数")
}())
6、逻辑运算符里面的短路
&&,左边为false就短路(不执行后面的)
||,左边为true就短路
无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值