1.作用域
-
作用域:变量或者函数的有效使用范围
-
作用域分类:局部作用域 全局作用域
- 全局变量/函数 局部变量/函数
- 全局变量/函数:在函数外声明变量/函数,可以在代码中的任何地方访问和修改,会一直存储在计算机的内存中,直到页面关闭
- 局部变量/函数:在函数内部声明的变量/函数,只能在函数内部使用 出了函数就会被销毁
4.注意
- 声明变量不带var 也可以使用 但是声明出来是全局变量
- 只要是在函数内部声明的东西 都是局部变量
2. 作用域链
作用域链:是js的一种查找机制,先找自身作用域范围内,再依次往父级作用域查找,直到找到全局变量 如果全局变量范围也找不到 就是is not defined
3.预解析
通过以上代码,代码不是单纯的从上往下执行 计算机在解析的时候 从上往下执行会经过很多步骤 ,至少掌握住两种步骤
-
1.预解析(变量提升)
-
找var关键字 提前声明变量(只看等号左边的内容),如果变量重名 在内存中 只会声明一次
-
找function关键字 提前声明整个函数 如果重名会多次声明
-
-
2.逐行执行
-
逐行执行的时候 会忽略funtion函数声明 和var 变量声明
-
- 3.注意
变量和函数重名也会被覆盖
普通函数声明与表达式声明的区别 普通函数可以提前调用 表达式声明无法提前调用
4.函数返回值
-
什么时候需要函数返回值
函数外侧需要函数内部的值
2.语法: return 返回值
3.注意事项
注意1:return一次只能返回一个值 如果连续写多个 返回的是最后一个值
注意2: return不仅有返回值的作用 还有结束函数执行的作用(遇到return就结束)