作用域
就是代码名字(变量)在某个范围内起作用和效果,目的是为了提高程序的可靠性和,更重要的是 减少命名冲突
作用域分类
1.全局作用域
整个script标签,或者单独js文件
var num = 10;
console.log(num);
2.局部作用域(函数作用域)
在函数内部即使局部作用域这个代码名字只在 函数内部起到效果和作用
function fn(){
var num=10;
console.log(num);
}
fn();
变量的作用域
1.全局变量
在全局域下的变量,在全局下都可以使用 注意:如果在函数内部没有声明直接赋值的变量也属于全局变量
var num = 10; //num就是一个全局变量
console.log(num);
function fn(){
console.log(num);
}
fn();
1.局部变量
在局部作用域下的变量 后者函数内部的变量就是局部变量
function fun(){
var num1=10;
//num1就是局部变量,只能在函数内部使用
num2=20;//在函数内部,没有声明也是全局变量
}
fun();
console.log(num1);//报错
console.log(num2);
变量总结
全局变量
1.在全局作用域下没有声明的变量叫做全局变量 全局变量在代码任何位置都可以使用 在全局作用域下var声明的变量是全局变量
局部变量
2.在局部作用域下声明的变量叫做局部变量 局部变量只能在该函数内部使用 函数的行参也可以看作是局部变量
在函数内部var声明的变量是局部变量
区别
1.全局变量在任何地方都可以使用,只有在浏览器关闭时才会销毁,因此比较占用内存
2.局部变量:只在函数内部使用,当所在代码块执行时,会被初始化,当代码块运行结束时会销毁,因此更省空间。
闭包函数
闭包就是能够读取其他函数内部变量的函数 就是顶一个函数内部的函数,在本质上,闭包 内部和函数外部链接起来的桥梁。
function func1() {
var x=10000;
return function() {
return x;
}
}
封装
封装:相同的地方不变 不同的地方通过参数来表示
function func(a, b, type) {
return eval(a + type + b)
}