JavaScript变量的作用域

moveit——基于octomap的碰撞检测 机械臂对棚顶进行碰撞检测。 阅读详情

什么叫变量的作用域?
所谓的变量的作用域,就是变量的使用范围
每一个变量都有自己的使用范围
就好像Q币,只能在QQ号登录的业务中使用
王者荣耀的金币钻石,只能在王者荣耀的商城中使用

变量的作用域分为两种:
①定义在函数之内的变量,包括函数的参数,定义在函数内部的变量,都称为局部作用域变量 / 局部变量,只能在函数内容部使用。如果外部想要直接调用是不行的
此时函数中定义的变量,参数a和变量b,都是局部作用域变量,只能在函数内部被调用使用,函数外部不能直接使用调用。只要是在函数外部调用函数内部的变量,都是报错

function fun1(a)
{
var b = 100;
console.log(a,b);  // 函数内部调用
}
——————————————————————————————————
fun1('北京');
console.log(a,b);   // 函数外部调用,

②定义在函数之外的变量,称为全局作用域变量/全局变量。在函数的内部是可以使用全局作用域变量的,但是是有条件的

var int = 100;
function fun2()
{
console.log(int);
}
fun2();

总结:
在函数外部不能直接调用函数内部定义的局部作用域变量
在函数内部可以调用函数外部的全局作用域变量,但是是有条件的

在函数中,调用变量和对变量赋值的原则:
①变量的调用:

// var int = '北京';
function fun1()
{
// var int = 100;
// console.log(int);
function f1()
{
var int = '反正不用';
}
}
// fun1();

调用变量的原则:
会先在当前作用域中,找是否有这个变量
如果有,就直接使用这个变量
如果没有,去父级作用域寻找这个变量
如果父级作用域有这个变量,就使用这个变量
如果父级作用域没有这个变量,再向上一层寻找
如果找到这个变量,就直接使用
如果所有的作用域都没有这个变量,执行结果是报错
只会向父级作用域找变量,不会向子级作用域找变量

②变量的赋值:

function fun2 ()
{
var int = 100;
int = 200;  
console.log(int);
}
fun2();

函数之前的调用只能调用全局作用域的int。如果全局作用域没有int,是函数内部,赋值语句升级定义的全局变量,调用的就是函数内部的的变量int。console.log(int);

变量的赋值原则:
先在当前作用域中找变量,如果有,就对这个变量进行赋值
如果当前作用域没有这个变量,去父级作用域找这个变量
如果父级也没有这个变量,再去父级找变量
如果所有的作用域都没有这个变量
赋值语句,升级为定义变量语句,并且定义的是全局作用域变量
不会去子级找变量赋值

记住一句话:定义变量,一定要写 var 关键词,不管是局部还是全局

在 SAP BTP ABAP 环境中测试多租户 SaaS 解决方案的完整实践指南 ABAP SaaS测试阶段关键实践 在SAP BTP ABAP环境中开发多租户SaaS解决方案时,测试阶段(TST)对确保产品质量尤为关键。测试阶段应包含两个主要维度: 业务功能验证: 通过软件组件管理确保测试环境与代码仓库同步 创建并验证业务角色分配,确保权限配置正确 测试Fiori Launchpad导航流程和跨应用跳转 验证inbound/outbound通信配置 自动化质量管控: 在开发环境(DEV)执行本地ATC检查和单元测试 通过ABAP Test Cockpit(ATC)进行代码质量检查 集成 阅读详情

相关推荐

用C#语言实现记事本

本次程序设计作业为用C#语言设计一个记事本,设计的记事本应与电脑系统自带的记事本类似,最后实现的界面及功能应类似于下图。

qq_57738695的博客 2847

【JavaScript】JS中变量的作用域

前几天在项目开发过程中发现两个if语句当中定义相同的变量,居然会相互影响。代码大概如下所示: if (1 == 1){ var obj = {name: "hello"}; $("body").click(function () { alert(obj.name) }) } if (2 == 2){ var obj = {name: "Hi"} } 点击事件触发后,发现输出的是Hi。我当时就考虑到应该和JS变量的作用域有关,所以就去学习了一下,并写下

心生的小鱼专栏 847

【原创工具 | OpenCV-CamCalib】一个基于 OpenCV 的自动化相机数据采集和标定程序

一个基于OpenCV的自动化相机数据采集和标定程序。系统内置相机地址默认为 0。

XavierJ的博客 2698

JavaScript---变量作用域

也就是在函数内部声明的变量,在函数外部无法访问,在函数内部,该变量都可以被访问。类似,在块级作用域内声明的常量,仅在该块级作用域内可访问。如果内联 JavaScript 代码创建了新的变量,这些变量会成为。在同一函数内部的顶部声明,那么三者具备相同的作用域”循环等)内声明的变量,仅在该块级作用域内可访问。”,它允许在变量声明之前就使用该变量。,这意味着在块级作用域(如。具备不同的作用域,但它们都。甚至在声明之前也可访问(声明常量,就必须同时进行。

zheshiyangyang的博客 1328

FitzHugh-Nagumo 模型连续-MATLAB仿真

【代码】FitzHugh-Nagumo 模型连续-MATLAB仿真。

qq_43688618的博客 882

CAN通信:EB中配置CAN驱动,配置参数解析

以S32K314芯片说明,其他芯片不同,参数配置也有差异。

zhangxiaio1的博客 2169

JavaScript-变量作用域原理详解-js编码核心

函数可以记住并访问其词法作用域,即使该函数在其词法作用域之外执行本质上是通过作用域链实现的。

插件开发 969

阿里云导出的镜像raw转换成vmdk格式工具

阿里云导出的镜像raw转换成vmdk格式工具 1.安装java环境,安装教程不介绍了 2.raw2vmdk软件下载: 在我的链接里面: 3.使用 打开cmd.bat软件: java -jar raw2vmdk.jar (原镜像)C:\\images\\raw\\disk.img (转换的镜像)D:\\images\\vmdk\\disk.vmdk 4.vmware打开vmdk文件 ...

3845

【JavaScript学习笔记8】JS中变量的作用域(面试常考点)

引言 无论是在JS还是在其他编程语言中,变量都有特定的作用域。引入一个叫块级作用域的说就是,任何一对花括号中的语句都属于一个块,在这里面定义的所有变量在代码块外都不可见的。 但是JS与其他编程语言在这方面还是有所差别 这里仅仅简单介绍全局变量与局部变量,详细记录JS中需要注意的变量作用域。 JS中的全局变量 JS中的全局变量指的是:定义在script或者不属于某个函数的变量 例: 上面例子中的n...

RayCongLiang的博客 317

FortiWeb 相对路径遍历漏洞复现(CVE-2025-64446)

FortiWeb是Fortinet公司推出的企业级Web应用防火墙(WAF),专为保护Web应用和API抵御高级威胁设计。它集成人工智能与机器学习技术,通过双层检测引擎(HMM模型与SVM向量机)精准识别异常流量,可防御OWASP Top 10攻击、SQL 注入、XSS、DDoS及恶意机器人。其核心功能包括API自动化保护、虚拟补丁集成(兼容Acunetix等第三方扫描工具)及智能流量分析,支持HTTP/2、WebSocket等现代协议。(CVE-2025-64446)

iSee857的博客 467

实干派!网易易盾增强版滑块验证码,全方位讲解识别思路(含源码)

该验证码是异形滑块验证码中的一种,缺口旋转+偏移的处理需要你有很好的图像处理知识,能很好的处理透明通道,同时,该验证码需要你能很好的处理缺口和背景之间匹配的关系,该验证码的处理难点就是两个缺口之间如何找到正确的,两个检测框都有很强的相似度,且加上背景图的干扰,在图像处理和有优化上难度大大增加。

码王吴彦祖的博客 2015

JavaScript的变量及作用域详解

假如你没去过天安门、故宫、长城相当于你没到过北京。假如你搞不懂JS变量的作用域,相当于你没学过JS。关于JS变量作用域的重要性自己好好悟吧!提示:查看本文章记得看注释哦! JS是一门弱类型(松散型)的语言,这也就是说其天生就与众不同,独领风骚! 在讲解变量作用域之前,我们先来了解一下JS中的变量。JS中的变量与其它语言有很大的不同,由于JS变量拥有松散(不强制)的本质,从而决定了其只是一个在...

高先生的猫 642

【OpenCV-Python】——图像处理基础&读写及显示图像&读写及播放视频&灰度图/彩色图/图像通道操作、运算

在Python中,OpenCV使用NumPy数组存储图像,Numpy是使用Python进行数组计算的软件包,提供强大的N维数组对象,支持复杂的广播功能(数组运算),集成了C/C++和Fortran代码工具,支持线性代数、傅里叶变换和随机数等特性,还可作为通用数据的高效多维容器,如在OpenCV中显示图像。Numpy的知识点见数据处理专栏,主要包括数据类型、创建数组、数组形状、索引切片和迭代、数组运算等。作为初学者,里面可能有总结不全,后续深入学习后会改善文章!下次学习图形用户界面!

weixin_51658186的博客 2084

JavaScript 基础篇:细说 js 中的变量和作用域

细说 JS 中的变量和作用域

RQ桑的博客 1118

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

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Javascript:JS的作用域和变量

文章目录一、根据所在位置进行分类1.全局变量2.局部变量二、生命周期1.全局变量2.局部变量三、作用域链1.定义2.代码Demo3.执行结果 一、根据所在位置进行分类 Javascript的作用域和变量可以按照其所在位置进行分类。 针对作用域,通俗地来说,在标签中和处于外部的==.js==文件中便是全局作用域,处于函数内部的则是局部作用域;而根据作用域进行延申,有以下几种全局变量和局部变量的情况: 1.全局变量 在全局作用域下,函数外部声明的变量 特殊情况下,在函数内不使用var声明的变量也是全局变量(

qjyws的博客 150

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

js中变量作用域

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js变量作用域</title> </head> <body> </body> <script> var test...

Gaia_qi的博客 451

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

彻底明白JS变量作用域

JS变量作用域牢记一段句话下面来理解下这段话作用域(以下均摘自javascript高级程序设计)没有块级作用域变量作用域总结参考 牢记一段句话 JS没有块级作用域,只存在作用环境,一个函数就是一个最小的作用环境,一般不在函数作用域里面的那就是在全局作用域中。于是得到,只要在函数以外定义的变量都是全局变量,在函数内部定义的就是只在这个函数作用域中的变量即局部变量。 注意两个点:不加var声明的变量不管在哪里都为全局变量。 2、由于JS不存在块级作用域,对于for和if中定义的变量隶属于函数作用域 下面来理解下

weixin_46146288的博客 515

js,javascript作用域, 全局局部作用域, 全局变量和局部变量, 块级作用域, 作用域链

1.javaScript作用域 2.全局作用域(函数作用域)局部作用域(函数作用域) 3.全局变量和局部变量 4.块级作用域 5.作用域链 </head> <body> <script> //1.javaScript作用域:就是代码名字(变量)在某个范围内起作用和效果, //目的就是为了提高程序的可靠性更重要的是减少命名冲突 //2.js的作用域es6之前:全局作用域局部作用域 ...

weixin_42270374的博客 372

JavaScript变量的作用域介绍

JavaScript变量的作用域介绍

cnds123的专栏 1187

JavaScript之变量函数作用域

前言:在此专栏中将会讲到 js 基础性的知识,包括但不仅限 es5、es6。将知识点与实际应用相结合,从理解到开发。每一次学习都有所收获,每一次重温知识点都加深印象,每一次掌握一种新知识都像打开了新世界的大门。希望在自己学习的同时能够帮助更多的人学习和理解。同时也欢迎各位猿友提出宝贵的建议和交流,有不对的地方还请赐教。 1.使用 2.变量 3.函数 4.作用域 一. 开门见山 基本上每种语言的...

hello,是翠花呀 345

重学js之JavaScript变量、作用域和内存问题

注意: 本文章为 《重学js之JavaScript高级程序设计》系列第四章【变量、作用域和内存问题】。 关于《重学js之JavaScript高级程序设计》是重新回顾js基础的学习。 1. 基本类型和引用类型的值 ES变量包含两种不同数据类型的值:基本类型值和引用类型值。 将一个值赋给变量的时候,解析器必须确定这个值是基本类型还是引用类型 1.1 基本类型值 指的是那些保存在栈内存中的简...

执行上下文的博客 162

JS变量作用域

js作用域介绍

屈帅波的技术博客 2329

JS作用域,变量提升,作用域链,词法环境

JS变量作用域变量作用域JS有函数作用域,但是没有块作用域的概念。ES(2015)6 const和let变量提升(hoisting)变量没有被声明之前,也可以使用。变量提升只是对变量的声明提前了,而赋值并没有被提前。非函数变量的提升比较容易明白,函数里的变量提升,你注意过?作用域链 变量作用域 JS有函数作用域,但是没有块作用域的概念。 值得注意的是,显示声明在函数里头的变量他是局部变量,若在函数里头直接使用未声明的变量则会隐式的声明成全局变量。 代码演示: { var a = '其实我是全局作用域

qq_39225639的博客 278

JS中作用域以及变量范围

变量作用域 js作为一门脚本语言,他与c,java这些语言是不相同的。 全局变量 在js中声明全局变量,有下面几种方式: 1.在函数外通过var来声明。 var test ="hello"; console.log(test); function a(){ test="xx"; console.log(test); } a(); console.log(test); ...

骚小孩啊丶 5877

js 怎么定义动态变量_JavaScript深入之词法作用域和动态作用域

作用域: ** 作用域是指程序源代码中定义变量的区域。作用域规定了如何查找变量,也就是确定当前执行代码对变量的访问权限。变量:ECMAScript的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。换句话说,每个变量仅仅是用于保存值的占位符而已。JavaScript采用词法作用域(lexical scoping),也就是静态作用域。静态作用域与动态作用域: 因为 js 采用的是词法作...

weixin_42376671的博客 232

Javascript变量作用域、变量提升

Javascript变量、变量提升以及作用域 执行环境对js编程的重要性不容忽视,理解其执行的原理,将有效提升编程素养。

hbzyin的博客 3044
上一篇: JavaScript函数的封装与调用学习整理
下一篇: JavaScript数组的学习整理
Submerge~
博客等级 码龄8年 3粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值