作用域
1、what?
指的是变量和函数的可访问范围,作用域分为两类:函数作用域和全局作用域
1)函数作用域:只在定义的函数内允许访问变量和函数
2)全局作用域:一经定义,在任何位置处都能访问
2、函数作用域中的变量
在某个函数中声明的变量,就是函数作用域中变量,也可以称为“局部变量”。
3、全局作用域中的变量
一经声明,任何位置都可以使用。声明方式:
1)将变量声明在最外层,所有的function之外
2)声明变量时,不使用var关键字,一律是全局变量,但有风险,因此不建议这样使用
注意:
声明提前:JS程序正式执行前,会将所有var声明的变量以及function声明的函数,预读到所在作用域的顶端。但赋值还保留在原位置上。
变量
对于变量有局部变量和全局变量,一般会用 var声明变量
1、局部变量
将函数声明的时候声明在某个函数内部,就是局部函数了。在被调用的时候也这能在局部区域内调用,超出范围就会报错了。
ps:局部变量会在函数运行后就被删除
2、全局变量
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
ps:全局变量会在页面关闭后被删除
函数
不经变量有分两种,而且函数也有全局函数和局部函数,这两种和变量大同小异,在函数前面使用关键字function
function num(){// 执行的代码}
1、带参数的函数
function num(num1,num2){
// 执行的代码
}
其中num1, num2是两个参数,一般情况下会将参数作为变量的形式声明
注意:基本数据类型的数据在做参数传递时,尽量不要在函数中修改,因为即使修改了,也不会影响到数据
2、带返回值的函数
function num(){
// 执行的代码
var x=10;
return x;
}
其中x就是函数的返回值