JavaScript的作用域及其相关概念

Javascript作用域及预解析 01-JavaScript作用域 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> 阅读详情

作用域是JavaScript中一个非常重要的概念,它定义了变量和函数的可访问范围。在JavaScript中,有几种不同的作用域类型,包括全局作用域、函数作用域和块级作用域。本文将详细介绍这些作用域类型,并提供相应的源代码示例。

  1. 全局作用域:
    全局作用域是指在代码中任何地方都可以访问的变量和函数。在JavaScript中,任何在函数外部声明的变量和函数都属于全局作用域。全局作用域中声明的变量和函数可以被任何其他作用域中的代码访问。

示例代码:

// 全局作用域中声明变量
var globalVariable = 'Global';

// 全局作用域中声明函数
function globalFunction() {
   console.log('This is a global function');
}

// 在其他作用域中访问全局变量和函数
console.log(globalVariable);     // 输出: Global
globalFunction();                 // 输出: This is a global function
  1. 函数作用域:
    函数作用域是指在函数内部声明的变量和函数只能在函数内部访问。这意味着在函数外部无法访问函数内部的变量和函数。

示例代码:

function functionScope() {
   // 函数作用域中声明变量
   var innerVariable = 'Inner';

   // 函数作用域中声明函数
   function innerFunction() {
      console.log('This is an inner function');
   }

   console.log(innerVariable);       // 输出: Inner
   innerFunction();                   // 输出: This is an inner function
}

functionScope();

console.log(innerVariable);           // 报错: innerVariable is not defined
innerFunction();                       // 报错: innerFunction is not defined
  1. 块级作用域:
    在ES6(ECMAScript 2015)引入的块级作用域中,通过使用let和const关键字来声明变量,可以创建一个只在块级作用域内部有效的变量。

示例代码:

function blockScope() {
   if (true) {
      // 块级作用域中声明变量
      let blockVariable = 'Block';

      console.log(blockVariable);   // 输出: Block
   }

   console.log(blockVariable);      // 报错: blockVariable is not defined
}

blockScope();

在上面的示例中,变量blockVariable在if语句的块级作用域内部声明,因此在块级作用域外部无法访问该变量。

除了let关键字,const关键字也可以用于创建块级作用域中的常量。与let不同,使用const声明的变量必须进行初始化,并且不能重新赋值。

总结:
作用域在JavaScript中起着至关重要的作用,它定义了变量和函数的可访问范围。全局作用域允许在代码的任何地方访问变量和函数,而函数作用域限制了变量和函数的可访问范围在函数内部。ES6引入的块级作用域通过let和const关键字提供了更细粒度的作用域控制。

js的基础笔记4:作用域(全局作用域、局部作用域、js中没有块级作用域、变量的作用域、作用域链)、预编译、对象(创建对象的三种方式) 1 - 作用域 1.1 作用域概述 通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。 JavaScript(es6前)中的作用域有两种: 全局作用域 局部作用域(函数作用域) 1.2 全局作用域 作用于所有代码执行的环境(整个 script 标签内部)或者一个独立的 js 文件。 1.3 局部作用域 作用于函数内的代码环境,就是局部作用域。 因为跟函数有关系,所以 阅读详情

相关推荐

零基础JavaScript学习【第六期】

久违的更新!谢谢大家的支持,记得要温故而知新!

GUIDM的博客 1397

Js 作用域及相关概念

作用域 词法作用域和动态作用域 我们需要先了解一个概念便是Js采用的是词法作用域,而不是动态作用域。 词法作用域: 词法作用域就是定义在词法阶段的作用域,是由写代码时将变量和块作用域写在哪里来决定的。无论函数在哪里被调用,也无论它如何被调用,它的词法作用域都只由函数被声明时所处的位置决定。 动态作用域: 动态作用域并不关心函数和作用域是如何声明以及在任何处声明的,只关心它们从何处调用。换句话说,作用域链是基于调用栈的,而不是代码中的作用域嵌套。 Js中的作用域 全局作用域 函数作用域 块级作用域(

qq_43750360的博客 477

WEBSTORM前端 —— 第6章:JavaScript进阶 —— 第1节:作用域&解构&箭头函数

垃圾回收机制(Garbage Collection) 简称 GCJS中内存的分配和回收都是自动完成的,内存在不使用的时候会被垃圾回收器自动回收。正因为垃圾回收器的存在,许多人认为JS不用太关心内存管理的问题但如果不了解JS的内存管理机制,我们同样非常容易成内存泄漏(内存无法被回收)的情况不再用到的内存,没有及时释放,就叫做内存泄漏。

2401_82750246的博客 1286

JavaScript中变量以及作用域链相关概念

JavaScript变量以及作用域链

2301_77135626的博客 112

Labview实现服务器(server)与多客户端(clients)通信

服务器可以接收多个客户端发送的消息,并显示消息来源。 服务器可以发送消息到指定客户端 客户端可以自动连接服务器,断连后重连 客户端可以发送消息到服务器,可接收服务器消息 类似框架可以用做中央服务器及客户端项目

u013809089的博客 7976

保姆级教程:用北醒TFmini-i-CAN雷达给PixHawk飞控加装‘眼睛’,实现自动避障与定高

经过多次测试,前向雷达的最佳安装位置是机架前部下方5-10cm处,倾斜角度20-30度。电源方面,建议为CAN设备单独供电,避免电机启动时的电压骤降导致数据异常。北醒TFmini-i-CAN雷达与PixHawk飞控的组合,为DIY爱好者打开了低成本实现智能避障的大门。实际部署时,需确保整个CAN网络的波特率一致(TFmini-i默认为250kbps),每个设备具有唯一ID。雷达的安装角度也直接影响检测效果,建议通过3D打印支架将雷达向前下方倾斜15-30度。当使用多个雷达时,需为每个设备创建独立的参数组。

weixin_30892889的博客 337

(九)javascript作用域相关概念

作用域就是代码名字在某个范围内起作用和效果,这个范围就是作用域。 作用域存在的意义:提高程序可靠性,减少命名冲突。 js作用域(es6之前)分为: 1,全局作用域 整个script标签内之中或者一个js文件之内起作用。 对应为全局变量,浏览器关闭才会销毁。 2,局部作用域 一个函数之内起作用。 对应为局部变量,函数执行结束即销毁。 (因为变量要占内存,所以尽量使用局部变量较好) 作用域链:函数内部访问函数外部的变量,采用的是链式查找的方式来决定取哪个值(就近原则)...

weixin_57244464的博客 229

深入解析JESD204B Periodic SYSREF在多ADC/DAC系统中的同步优化策略

本文深入探讨了JESD204B Periodic SYSREF在多ADC/DAC系统中的同步优化策略,针对雷达阵列和宽带通信系统中的同步精度问题,详细解析了硬件实现细节、参数配置实战经验及系统级优化方法。通过案例分析和技术要点,帮助工程师解决由温度漂移和时钟抖动引起的同步挑战,提升系统性能。

weixin_29267307的博客 137

JavaScript基础第05天笔记⭐作用域⭐变量的作用域⭐作用域链⭐预解析⭐对象创建相关概念

JavaScript基础第05天笔记 1 - 作用域 1.1 作用域概述 通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。 JavaScript(es6前)中的作用域有两种: 全局作用域 局部作用域(函数作用域) 1.2 全局作用域 作用于所有代码执行的环境(整个 script 标签内部)或者一个独立的 js 文件。 1.3 局部作用域 作用于函数内的代码环境,就

博客 177

BEVFusion(mit)最强环境安装,部署复现

BEVFusion作为一项经典的工作,值得深入探索。然而由于配置环境比较麻烦,耽误了一些时间。经过几次成功配置之后,有了一些总结,在这里记录下来,供大家参考避坑,也方便自己下次查阅。

qq_45783225的博客 1万+

【规则引擎连载3】 WebSphere ILOG JRules 开发——新建一个规则项目

规则项目依赖于bom,bom来自于一个Java项目,所以在建规则项目之前,需要先建立一个Java项目,也就是建模。 说明:原则上是一个规则项目,一个bom。如果规则项目很多,并且每个规则项目的bom都是一样的,那么可以将bom提取出来,单独作为一个项目,这样减少不必要的重复操作,减少维护成本,降低出错几率。这里逐步讲解两种方法来创建规则项目,推荐第二种。 本文主要建立两种规则项目与bom之间的关系,编写相关的规则内容,如操作规则、规则流、决策表等,在后续文章中详细讲解 。

manman的分享 2331

js变量作用域的一些例子

本来想要在“作用域”这个专题上自己总结出一些东西的,结果想了好久都没有形成一个固定的思路,也不想贸然拷贝网上的说法。所以,还是先记录几个容易犯错的小例子,以后再来形成总结吧。1、“变量声明提升”var x = 'global';function f1() { console.log(x); }function f2() { console.log(x); /*

VitaLemon__的专栏 1701

【UGUI】二、Text(TMP) 文本

Text(TMP)、导入中文字库

天行健,君子以自强不息 3366

前端面试官:“你说说作用域”

引言 这个问题,我自己去面试的时候,遇到的几率挺大的,而每次回答,都是回答个大概,然后面试官也没有深究。但是根据我自己学习到的知识,隐约知道这里面水很深,但从没有做过一次总结归纳。因此,这篇文章,就来刨根问底,并总结出一份应对这个问题的“完美”答案。 作用域相关定义(what) 这一小节:着重引用概念以及表达结论。 Scope The current context of execution. The context in which values and expressions are “visible

guojianglin007的博客 612

AD7768与STM32F439的硬件设计避坑指南:如何优化高精度ADC系统的电源与PCB布局

本文详细解析了AD7768与STM32F439在高精度ADC系统硬件设计中的关键问题与优化方案。从电源系统设计、PCB布局到基准电压选型,提供了实用的避坑指南和实测数据,帮助工程师提升系统性能至110dB动态范围。特别强调了SPI信号布线和电源滤波对ADC精度的重要影响。

sugar的博客 735

银行业数据科学家的 6 条经验教训

原本希望在计算机科学、统计学和机器学习领域工作。运用新方法获得独特见解,实现一切自动化。简而言之,最终成了这个职业炒作的牺牲品。我想和你们分享一下。希望我们能够摆脱炒作,提高你对数据科学家工作的理解。

茶桁专栏 246

JavaScript基础(8)-作用域

JavaScript基础之作用域

weixin_56498069的博客 170

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JavaScript的作用域和预解析(重点)

js引擎会把js里面所有的 var,还有function提升到当前作用域的最前面 ① 预解析分为变量预解析(变量提升)和函数预解析(函数提升) ② 变量提升:就是把所有的变量声明提升到当前的作用域最前面,不提升赋值操作。注:var a=b=c=6相当于var a=6;(2) 局部变量:在局部作用域下的变量或者在函数内部的变量是局部变量。函数的形参也可以看出函数的局部变量。

m0_62563651的博客 106

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

前端三座大山之一:作用域与作用域链

本篇文章将带你深入剖析 JavaScript 中的作用域及作用域链机制,通过通俗易懂的讲解与实例,帮助你彻底理解它们的运行原理。作用域和作用域链是 JavaScript 中非常基础却又极其重要的概念,理解它们不仅能让你的代码更高效,还能帮助你在面试中应对自如。全局作用域:是一个名为window的对象,所有全局变量和全局函数都是window对象的成员。不属于任何函数的外部范围称为全局作用域,保存在全局作用域的变量称为全局变量。一个函数内的范围称为函数作用域,保存在函数作用域内的变量称为局部变量。

baiguo610的博客 415

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JavaScript基础知识(函数、作用域)

目录 一、函数 2、使用:声明(定义函数)、调用 3、声明语法 4、函数的调用 5、Node.js 6、DOS(Disk Option System) 7、函数的参数:参入运算的数据 8、函数的返回值 9、arguments的使用 10、回调函数 11、函数的递归调用 二、作用域:变量的作用范围 1、全局作用域(全局变量) 2、局部作用域(局部变量) 3、块级作用域 4、作用域链 一、函数 1、是一个独立的功能模块,可以重复使用,维护方便。 2、使用:声明(定义函数)、

Han_Zhou_Z的博客 370

JS预解析/预编译、var和function变量提升;全局对象和活动对象、全局变量和局部变量、全局函数和局部函数;作用域和作用域链;

JavaScript是解释性语言,解释性是指逐行解析、逐行执行。在JavaScript真正被解析之前,JS解析引擎会把整个文件进行预处理,以消除一些歧义。这个预处理的过程就称为预编译。

小草莓的博客 581

07js-函数相关概念/作用域/预解析/欲解析分段问题

函数 /** *函数:把一坨重复的代码进行封装 在需要的时候拿出来 *函数作用:代码的重用 * *函数的参数: *1、形参:函数定义的时候 函数名字后面的小括号里面的变量 *2、实参:函数调用的时候 函数名字后面的小括号里的变量或者值 * *返回值: *函数中有return 函数有返回值 *函数中没有return 函数没有返回值 *没明确返回值:函数中没有return或者return后面没有任何内容如果一个函数没有明确的返回值 接收这个函数 结果是undefin

weixin_41452476的博客 169

22.作用域

跟踪记录被引用的次数如果被引用了一次,那么就记录次数1,多次引用会累加 ++如果减少一个引用就减1 --如果引用次数是0 ,则释放内存嵌套引用(循环引用)如果两个对象相互引用,尽管他们已不再使用,垃圾回收器不会进行回收,导致内存泄露。

Wjs153612的博客 792

JavaScript中的函数

本文旨在帮助大家学习JavaScript中的函数

qq_63946637的博客 1550

JavaScript基础第03天笔记

JavaScript基础知识03

m0_62788719的博客 124

javascript考点 —— 作用域和闭包

一、执行上下文 范围:一段&lt;script&gt;或者一个函数 全局:变量定义、函数声明 函数:变量定义、函数声明、this、arguments console.log(a) //undefined var a = 100 fn('zhangsan') function fn(name){ age = 20 console.log(name, age) //'...

zhanghuali 251
上一篇: JavaScript 属性 (Attributes):了解和使用
下一篇: JavaScript 正则表达式的全面指南
普通网友
博客等级 码龄3年 2粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值