JS 4-13笔记

135 阅读2分钟

作用域

就是代码名字(变量)在某个范围内起作用和效果,目的是为了提高程序的可靠性和,更重要的是 减少命名冲突

作用域分类

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)
    }