JS作用域

本文介绍了JavaScript中的作用域概念,包括全局作用域(全局变量和window对象属性)、函数作用域(局部变量)以及ES6引入的块级作用域(let和const声明的变量)。块级作用域使得变量声明更可控,避免了变量污染全局范围。
摘要由CSDN通过智能技术生成


前言

JS作用域也是JS的重点知识,今天来复习一下面试的重点

一、什么是作用域?

作用域是可访问变量的集合。作用域分为全局作用域、函数作用域以及es6新增的块级作用域。

二、作用域

2.1全局作用域

定义在函数外的变量,即为全局变量,函数内未声明的变量也为全局变量。全局变量有全局作用域,window对象中的属性拥有全局作用域也可以在当前脚本任意位置被访问。

        var obj = {};//全局变量
        function get() {
            newObj = { name: 'zhangsan' }; //未声明 为全局变量
            console.log(obj);
        }
        get();

2.2函数作用域

作用于函数内的代码环境即为函数作用域,函数内的变量为局部变量,只能在函数内部被访问。

        var a = 10;
        function get() {
            var a = 1;
            console.log(a);//读取函数内变量1
        }
        get();
        console.log(a);//读取全局变量10 访问不到函数内变量

2.3块级作用域

es6中新增了const来声明常量以及let来声明变量,他们的共同点就是可以形成一个块级作用域,一个{]就是一个作用域,在其外面是访问不到他们所声明的常量/变量。

        if (true) {
            let a = 1;
            const b = 2;
            console.log(a);//输出1
            console.log(b);//输出2
        }
        console.log(a);//报错 提示找不到名称a
        console.log(b);//报错 提示找不到名称b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值