(1)函数的概念;
(2)定义函数;
(3)调用函数;
(4)函数的参数;
(5)函数返回值;
(6)作用域;
对上面进行文字和代码进行讲解,如下所示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 函数的概念
/* 对于js来说,函数就是把任意一段代码放在一个盒子里面
在我想要让这段执行的时候,直接执行这个盒子里面的代码就行
先看一段代码 */
// 这个是我们以前写的一段的代码
for (var i = 0; i < 10; i++){
console.log(i)
}
// 函数,这个{}就是那个 “盒子”
function fn(){
// 这个函数我们以前写的代码
for (var i = 0; i < 10; i++){
console.log(i)
}
}
// 1.定义函数
// (1)声明式
function test1(){
console.log("我是test1套餐")
}
function test2(){
console.log("我是test2套餐")
}
// (2)赋值式
var test3 = function(){
console.log("我是test3套餐")
}
// 2.调用函数
test1()
test2()
test3()
// 3.函数的参数
/* 我们在定义函数和调用函数的时候都出现过()
现在我们就来说一下这个()的作用
就是用来放参数的位置
参数分为两种形参和实参 */
//声明式
function fn(/*形参写在这里*/){
//一般代码
}
fn(/*实参写在这里*/)
// 赋值式函数
var fn = function (/*形参写在这里*/){
// 一般代码
}
fn(/*实参写在这里*/)
// 4.返回值
/* 函数调用本身也是一个表达式,表达式,就应该有一个值出现
现在的函数执行完毕之后,是不会有结果出现的 */
// 比如 1 + 2 是一个表达式,那么 这个表达式的结果就是 3
console.log(1 + 2) //3
function fu(){
// 执行代码
}
// fn()也是一个表达式,这个表达式就没有结果出现
console.log(fn())
// return 关键字就是可以给函数执行完毕一个结果
function fu(){
// 执行代码
return 100
}
// 此时,fn() 这个表达式执行完毕之后就有结果出现了
console.log(fn()) //100
// 我们可以在函数内部使用return关键把任何内容当作这个函数运行后的结果
function fun1(x, y){
var result = x + y
return result
}
var sum = fun1(1, 2)
/* 注意:1,return 看需求
2,return 后面无法执行了。 */
// 预解析
/* 预解析 其实就是聊聊js代码的编译和执行
js 是一个解释型语言,就是在代码执行之前,先对代码进行通读和解释,然后在执行代码
也就是说,我们的js代码在运行的时候,会经历两个环节解释代码和执行代码 */
// 解释代码
/* 因为是在所有代码执行之前进行解释,所有叫做预解析(预解释)
需要解释的内容有两个
声明式函数
在内存中先声明有一个变量名是函数名,并且这个名字代表的内容是一个函数
var 关键字
在内存中先声明有一个变量名 */
// 作用域
/* 什么是作用域,就是一个变量可以生效的范围
变量不是在所有地方都可以使用的,而这个变量的使用范围就是作用域 */
// 全局作用域
/* 全局作用域是最大的作用域
在全局作用域中定义的变量可以在任何地方使用
页面打开的时候,浏览器会自动给我们生成一个全局作用域window
这个作用域会一直在,直到页面关闭就销毁了 */
// 下面两个变量都是存在在全局作用域下面的,都是可以在任意地方使用的
var num = 100
var num2 = 200
// 局部作用域
/* 局部作用域就是在全局作用域下面有开辟出来的一个相对小一些的作用域
在局部作用域中定义的变量只能在这个局部作用域内部使用
在JS中只有函数能生成一个局部作用域,别的都不行
每一个函数,都是一个局部作用域 */
// 这个num是一个全局作用域的变量 在任何地方都可以使用
var num = 100
function fn(){
/* 下面这个变量就是一个 fn 局部作用域内部的变量
只能在 fn 函数内部使用 */
var num2 = 200
}
fn()
// 访问规则
/* 当我想获取一个变量的值的时候,我们管这个行为叫做 访问
获取变量的规则:
首先,在自己的作用域内部查找,若果有,救治借拿来使用
如果没有,就去上一级作用域查找,如果有,就拿来使用
如果没有,就继续去上一级作用域查找,依次内推
如果一直到全局作用域都没有这个变量,那么就会直接报错 */
</script>
</head>
<body>
</body>
</html>