JavaScript作用域及预解析

文章目录

  • 1. 作用域介绍
  • 2. 变量的作用域
  • *3. JS中没有块级作用域
  • 4. 作用域链
  • 5. 预解析
    • 预解析案例

1. 作用域介绍

在这里插入图片描述

  1. 全局作用域在这里插入图片描述
  2. 局部作用域在这里插入图片描述
  3. 相同的变量名称在不同的作用域中是不会相互影响的!在这里插入图片描述

2. 变量的作用域

  1. 全局变量:在全局下都可以使用;
  2. 局部变量:在函数内部的变量。

注意:
1.如果在函数内部没有直接声明直接赋值的变量也属于全局变量。(例如:num = 20)
2.函数的形参也可以看作是局部变量。

全局变量和局部变量的比较

在这里插入图片描述

*3. JS中没有块级作用域

在这里插入图片描述

4. 作用域链

作用域链:
内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值,这种结构我们称之为作用域链。(总的来说就是就近原则)

5. 预解析

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

预解析案例

  1. 在这里插入图片描述
    在这里插入图片描述
    结果:

在这里插入图片描述
在这里插入图片描述
结果:
undefined
undefined
20

  1. 在这里插入图片描述
    在这里插入图片描述
    结果:在这里插入图片描述
  2. 在这里插入图片描述
    结果:在这里插入图片描述

注意:
var a = b = c = 9的含义是:var a = 9; b = 9;c = 9 ,也就是 b 和 c 没有声明变量,直接赋值了,当作全局变量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/496771.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GameFramework框架内置模块】6、实体(Entity)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录: https://blog.csdn.net/q7…

React UI框架Antd 以及 如何按需引入css样式配置(以及过程中各种错误处理方案)

一、react UI框架Antd使用 1.下载模块 npm install antd -S 2.引入antd的样式 import ../node_modules/antd/dist/reset.css; 3.局部使用antd组件 import {Button, Calendar} from antd; import {PieChartTwoTone} from ant-design/icons; {/* 组件汉化配置 */} import l…

PyTorch概述(六)---View

Tensor.view(*shape)-->Tensor 返回一个新的张量同之前的张量具有相同的数据,但是具有不同的形状;返回的张量同之前的张量共享相同的数据,必须具有相同数目的元素,可能具有不同的形状;对于经过view操作的张量&…

Java 反射机制

​ 更多内容,前往IT-BLOG ​ 反射Reflection被视为动态语言的关键,反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。反射是一种功能强大且复杂的机制。使用它的主要人员是工具构…

uniapp腾讯地图JavaScript Api,H5端和原生APP端可用

因项目需要,在uniapp中集成使用腾讯地图,为了方便维护,希望通过一套代码实现H5和APP同时可用。H5显示相对简单,APP端比较麻烦,记录下实现过程 一、集成步骤 1.使用 renderjs script标签使用renderjs,因为…

Vue项目 快速上手(如何新建Vue项目,启动Vue项目,Vue的生命周期,Vue的常用指令)

目录 一.什么Vue框架 二.如何新建一个Vue项目 1.使用命令行新建Vue项目 2.使用图形化界面新建Vue项目 三.Vue项目的启动 启动Vue项目 1.通过VScode提供的图形化界面启动Vue项目 2.通过命令行的方式启动Vue项目 四.Vue项目的基础使用 常用指令 v-bind 和 v-model v…

SpringCloud认识微服务

文章目录 1.1.单体架构1.2.分布式架构1.3.微服务1.4.SpringCloud1.5.总结 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 微服务架构是一种架构模式&…

爬虫入门四(抽屉半自动点赞、xpath使用、动作链、打码平台、scrapy框架介绍与安装及创建项目)

文章目录 一、抽屉半自动点赞二、xpath的使用三、动作链四、打码平台介绍超级鹰打码基本测试 五、自动登录超级鹰六、scrapy框架介绍安装创建爬虫项目 一、抽屉半自动点赞 登录抽屉账号保存cookiesimport timeimport jsonfrom selenium import webdriverfrom selenium.webdrive…

c# 异常处理

异常类 .NET Framework 类库中的所有异常都派生于 Exception 类,异常包括系统异常和应用异常。 默认所有系统异常派生于 System.SystemException,所有的应用程序异常派生于 System.ApplicationException。 系统异常一般不可预测,比如内存堆…

代码库管理工具Git介绍

阅读本文同时请参阅-----免费的Git图形界面工具sourceTree介绍 Git是一个分布式版本控制系统,它可以帮助开发者跟踪和管理代码历史。Git的命令行工具是使用Git的核心方式,虽然它可能看起来有些复杂,但是一旦掌握了基本命令,你…

stable-diffusion-webui-forge 介绍,安装,运行

一 stable-diffusion-webui-forge 介绍 stable-diffusion-webui-forge 的作用和stable-diffusion-webui一样,但性能上作了优化,说得上是是stable-diffusion-webui优化版,本人在使用stable-diffusion-webui时偶尔会有内存不够报错。本人的环境…

‘grafana.ini‘ is read only ‘defaults.ini‘ is read only

docker安装grafana 关闭匿名登录情况下的免密登录遇到问题 grafana.ini is read only defaults.ini is read only 参考回答(Grafana.ini giving me the creeps - #2 by bartweemaels - Configuration - Grafana Labs Community Forums) 正确启动脚本 …