javascript中的变量

前端JS变量教程:JavaScript变量详解 什么是JavaScript变量? 变量是程序在内存中申请的一块用来存放数据的空间。例如,程序在内存中保存字符串“小明”和“小张”,如图1所示。在图1中,我们可以将内存想象成一个酒店,当需要人住酒店时,就需要在酒店里预订一个房间。由于酒店里有大量的房间,为了准确地找到某一个房间, 需要给每个房间分配一个房间号。 同样地,内存中的每个变量需要进行命名,才可以找到某一个变量,因此,图1中的两个变量分别被命名为pl和p2。 JavaScript变量的使用 变量在使用时分为两步,分别是“声明变量”和“赋值”。这两步 阅读详情

在javascript中,变量可以用来存放任何类型的值。

变量声明

在使用一个变量前,可以使用var来声明一个变量。这样被声明的变量会被自动添加到与它最接近的环境中。即,假如在全局环境中使用var声明一个变量,那么它就属于全局环境,是一个全局变量;假如在一个函数内部,使用var声明一个变量,那离它最近的环境固然是该函数对象,那么它就是一个局部变量。

如果一个变量在初始化时没有使用var声明,那它将被添加到全局环境中,将成为一个全局变量。

建议,都使用var来声明变量,以免造成不必要的错误。

还有一点需要注意的是,使用var声明的变量是永久性的,不能用delete运算符来删除它,否则将会引发错误。

变量的作用域

在全局环境中所定义的变量是全局变量;

在函数内部定义的变量是局部变量。

没有块级作用域

javascript没有块级作用域,在函数内部声明的变量,在整个函数中都是有定义的,但是在执行var语句之前,它不会被初始化,值始终为undefined。

建议将变量集中在函数开头进行声明。

作用域链

当代码在一个环境中执行时,会创建变量对象的一个作用域链。

作用域链的前端,始终是当前执行的代码所在环境的变量对象。而全局环境的变量对象始终是作用域链中的最后一个对象。

变量的解析是从从作用域的前端开始,然后逐级向上搜索,直到找到要搜索的变量为止。假如在全局环境中也没能搜索到该变量,则表明该变量尚未声明,通常会引发错误。

由上面可以看出,局部变量的优先级高于与它同名的全局变量。

延长作用域链

with语句和try-catch语句中的catch块,可以在作用域的前端临时增加一个变量对象,该变量对象会在代码执行后被移除。

这样,当执行流进入语句时,作用域链就会被加长。

基本类型和引用类型

数值、布尔值、null和undefined属于基本类型;

函数、数组和对象属于引用类型值。

基本类型和引用类型的区别

  1. 值的存储。基本类型在内存中的固定大小的,变量存储的是基本类型的值;引用类型在内存中没有固定大小,变量存储的是对这个值的引用(指针或内存地址)。
  2. 动态的属性。由于基本类型的值是不能改变的,所以我们不能动态的为其添加属性和方法;对于引用类型,我们可以动态的为其添加、修改或删除属性和方法。
  3. 值的复制。基本类型的值的复制,是创建了一个值的副本,然后赋给新变量,两个变量是完全独立的,不会相互影响;而引用类型的复制,是复制了该变量的一个引用。复制结束后,两个变量是指向同一个对象的,所以改变其中一个变量,会影响到另一个变量。

检查类型

基本类型的变量,可以使用typeOf操作符来确定它是属于那个数据类型的。假如是引用类型,执行typeOf操作,将只会返回Object或function。不能确定它是哪个给定的引用类型。

instanceof()操作会告诉我们,传入的参数是属于什么类型的对象。如果对象是给定引用类型的实例,那么将返回true。

传递参数

在javascript中,函数的参数是按值传递的。函数的参数相当于局部变量。


Javascript:谈谈JS的全局变量跟局部变量 本文通过诸多示例,详细讲解了JavaScript的局部变量和全局变量,极力推荐大家阅读! 阅读详情

相关推荐

Emotion-LLaMA实战指南:从零构建多模态情感识别系统(附Python代码)

本文提供了Emotion-LLaMA多模态情感识别系统的实战指南。通过详细的步骤,指导读者从零搭建开发环境、运行本地Demo、理解模型架构,并完成数据处理与模型训练。该创新模型融合视觉、听觉与文本信息,实现更精准、接近人类理解的情感分析与推理,并附有完整的Python代码实现。

weixin_29094775的博客 416

never 类型

never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。

monkey's的博客 941

Xilinx IP库在Modelsim/Questasim中的高效仿真实践

本文详细介绍了在Modelsim/Questasim中高效仿真Xilinx FPGA设计的核心方法。针对仿真时常见的IP核缺失错误,重点解析了两种主流解决方案:使用Vivado的compile_simlib命令自动编译完整仿真库,以及利用export_simulation命令为特定工程生成仿真脚本。文章还提供了手动配置库的深入理解、实战排错步骤及高级避坑指南,帮助用户构建稳定、高效的独立仿真环境。

sony5的博客 1230

java script 变量_JS(JavaScript)中变量的用法

(写在文前的话:本文涉及到的编译软件为WebStorm,同类编译软件用法大同小异。JavaScript本文简称"JS"。)1.变量的定义:变量是指程序中一个已经命名的储存单位,它的主要作用就是为数据操作提供存放信息的容器。2.变量的命名:(1).必须以字母或下划线(_)开头,中间可以是数字、字母或下划线;(2).变量名不能包括空格、加、减等符号;(3).不能使用JS中关键字作为变量名,如int,n...

weixin_35626077的博客 638

Python遥感图像处理指南(2)-卫星影像分析MNDWI提取

在第一篇文章中,我们使用了我们导入的软件包中已定义的函数,如 rasterio 中的 open 和 read 以及 matplotlib 中的 imshow。现在,我们可以编写自己的函数了。函数是一段代码,它接收一些参数作为输入并返回输出(经过一些计算),可以在代码中多次重复使用,也可以被其他代码重用。在 Python 中定义一个新函数非常简单。return v在此语法示例中,arg1和arg2强制参数,应该传递给函数,否则会引发错误,而arg3是一个可选参数,如果是,则假定默认值 1从函数调用中省略。

gis收藏家的博客 1576

三电平逆变器LC滤波设计避坑指南:从SVPWM谐波到Simulink仿真验证

本文详细解析了三电平逆变器LC滤波设计中的关键问题,从SVPWM谐波特性到Simulink仿真验证,提供了800V/10kW系统的参数计算方法和优化技巧。通过实际案例和仿真配置示例,帮助工程师避免常见设计误区,提升电能质量和系统稳定性。

weixin_29261711的博客 173

JavaScript——关于JavaScript、在HTML中嵌入JS代码的三种方式、变量

JS函数类似Java中的方法Java中定义方法的格式是[修饰符列表]返回值类型方法名(形式参数列表){方法体;}JS是一种弱类型,JS中的函数不需要指定返回值类型,返回什么类型都行函数的定义格式是//第一种方式function函数名(形式参数列表){函数体;}//第二种方式函数名=function(形式参数列表){函数体;}例如函数//a和b都是局部变量,他们都是形参(a和b都是变量名,变量名随意。配合单击按钮框的逻辑完整代码如下...

胖虎虎 4667

从零到一:基于Rocky Linux 9的Kubernetes高可用集群部署实战

本文提供了一份基于Rocky Linux 9操作系统,从零开始部署Kubernetes高可用集群的完整实战指南。详细讲解了包括系统初始化、容器运行时配置、使用kubeadm工具进行集群初始化、节点加入以及Calico网络插件安装在内的核心步骤,并针对国内网络环境提供了镜像加速等优化方案,旨在帮助读者构建一个稳定可靠的生产级K8s环境。

weixin_29197835的博客 139

java script 变量_JavaScript中的变量

本次的学习目标:① 理解JS 中变量的概念;② 理解JS 中的各种数据类型;③ 了解各种数据类型的转换。一、变量的概念变量即变化的量,在JS中变量是松散类型的,可以用来保存任何数据类型,在定义变量时,用var操作符,后面跟变量名。var name; //变量未初始化,此时变量保存值为:undefinedvar name = "张三"; //定义变量时直接初始化,此时的变量值为 张三var i...

weixin_39888018的博客 254

E28 LoRa模块透传 定点传输 RSSI测试与MicroPython应用

测试说明 测试模块数:3 测试模式:配置模式和传输模式 如果没有检测到串口,首先检查是否安装串口驱动CH341SER,下载链接,提取码:vaw2 工作模式 模式(0-3) M2 M1 M0 模式介绍 备注 0 传输模式 1 0 0 串口打开,无线打开,连续透明传输 空速支持手动配置和自适应波特率自动调节;连续模式双方波特率必须一致 1 RSSI 1 0 1 串口打开,无线打开,RSSI功能打开 模块每100ms输出RSSI强度值 2 测距模式 1 1 0 保留 - 3 配置模式

GniLAY1022的博客 4243

诊断测试工具CANoe.DiVa从入门到精通系列——开门见山

### 工具主要用于测试ECU的诊断功能。关于自动化诊断测试可以分为如下内容: ### -> 1、根据诊断需求规范进行cdd文件的编辑(现阶段主要是诊断问卷调查表); ### -> 2、新建Diva工程,导入对应的诊断数据库文件生成测试用例; ### -> 3、新建CANoe工程,导入CANoe.DiVa生成的Diva工程; ### -> 4、根据测试报告进行错误处理。

Soly_kun的博客 3555

JavaScript初识总结(JS中的变量)

JavsScript 中的变量

weixin_44031282的博客 401

Qt CEF融合技QCefView使用教程

如果从事C++客户端开发,对CEF应该不陌生,当C++界面需要和web交互时,CEF是很好的解决方案,当然Qt也提供了QWebEngineView来进行web交互,最近在万兴喵影的安装目录看到了QCefView.dll,之前也听说过这个库,没在意,没想到还真有人用到项目里面,于是决定自己编译写个demo看看......

琅嬛福地 1万+

JavaScript系列-05 关于JS中的变量和函数

javaScript系列 关于JS中的变量 文章目录javaScript系列前言一、了解JS中的变量1.1声明与赋值1.2默认值1.3常见错误二、函数的定义与调用2.1声明和调用三、JS的局部变量和全局变量3.1 局部变量和全局变量的的区别总结 前言 编译期强行固定变量的数据类型。称为强类型语言。 变量声明的时候是什么类型,以后永远都是这种类型,不可变。(Java) 没有编译阶段,变量可以随意赋值。称为弱类型语言。(javascript) 一、了解JS中的变量 1.1声明与赋值 声明变量

m0_46222379的博客 325

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JavaScript 变量的详解 js

JS三种书写位置 1.行内式 <input type="button" value="点我试试" onclick="alert( 'Hello world')”/> 2.内嵌式 <script> alert( 'Hello world~! '); </script> 3.外部JS文件 JS输出输入语句 方法 说明 归属 alert(msg) 浏览器弹出警示框 浏览器 console.log(msg) 浏览器控制台打印输出信息 浏览器 p

weixin_50558756的博客 289

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

什么是 js 变量提升 (Javascript Hoisting)

Javascript是一门容易遭人误解的语言,但是它的强大毋庸置疑。个人觉得,要想深入理解Javascript语言,首先必须对其基本的概念(例如:Scope,Closure,Hoisting等)要真正理解。今天想通过自己的理解来对Javascript Hoisting(国内一般翻译为 变量提升)做一个阐述:   在解释Javascript Hoisting之前,先看一下几段代码: ...

weixin_30825199的博客 2038

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

js java变量_JavaScript 变量

原标题:JavaScript 变量变量是用于存储信息的"容器"。实例var x=5;var y=6;var z=x+y;尝试一下 »就像代数那样x=5y=6z=x+y在代数中,我们使用字母(比如 x)来保存值(比如 5)。通过上面的表达式 z=x+y,我们能够计算出 z 的值为 11。在 Java 中,这些字母被称为变量。您可以把变量看做存储数据的容器。Java 变量与代数一样,Java 变量可用...

weixin_36012968的博客 211

JavaScript变量,js定义变量

一、JavaScript的变量分类。js内存为堆或栈 1、基本数据类型变量 a.number 整型 b.string 字符串类型 c.Boolean 布尔值类型 d.null 空 e.undefined 未定义类型 PS:基本数据类型存放在栈中 2、引用数据类型变量 object 对象 array 数组 function 函数 PS:引用数据类型存放在堆中 二、JavaScript中var、let、const的区别和使用 1、var定义变量 var定义的变量能够预解析,如果变量没有定义就直

weixin_43392676的博客 7967

【JavaScript】JS为什么要进行变量提升?

前言: 用过的JavaScript的应该都知道,它有变量提升的机制,不过可能很少去考虑为什么会有变量提升的机制,现在就来看一下为什么要进行变量提升。 1. 什么是变量提升? 变量提升实际上很容易理解,就是说在任何位置所声明的变量或函数,都会自动“提”到最前面,就好像它们是在函数的开头声明的一样。 2. 为什么进行变量提升? 首先我们要知道,JS在拿到一个变量或者一个函数的时候,会有两步操作,即解析和执行。 在解析阶段,JS会检查语法,并对函数进行预编译。解析的时候会先创建一个全局执行上下文环境,先把代码

公众号:前端充电宝 4683

JavaScript【JS语法与变量】

前端语言:处理界面(HTML、CSS、JavaScript、……)后端语言:处理数据(Java、PHP、Python、Go、……)(浏览器)前端 <———— HTTP 协议 ————> 后端(服务器)传统的 JS 是一门前端语言,只能运行在浏览器端,不能在服务器端处理数据,且不能独立于浏览器存在,不能脱离 HTML!在 2009 年,诞生了 Node.js,这是一个 JavaScript 的服务端运行平台。

qq_64183220的博客 889

让天下没有难学的js之JavaScript中变量的那些事

本篇文章面向群体:入门级 难度等级:★☆☆☆☆ 内容较多,建议点赞收藏后阅读 什么是变量 变量作为js中最常见也是我们最早接触的js知识点,相信大家都不陌生,变量几乎存在于所有的编程语言中,百度百科中对于变量的解释为 变数或变量,是指没有固定的值,可以改变的数。变量以非数字的符号来表达,一般用拉丁字母。 而JavaScript中的变量是松散类型(弱类型)的,所谓松散类型就是可以用来保存任何类型的数据,在声明变量时无需指定变量的类型。所以,当我们声明一个变量之后,可以存储任意类型的数据。 怎么去声明一个变.

qq_28252421的博客 214

【JavaScript笔记】JS及变量简单介绍

一、JS介绍 JavaScript(简称JS)是一种轻量级、解释型的Web开发脚本语言 轻量级:语法简洁,不能操作系统文件 解释型:无需编译,直接浏览器就可以解释 前端主要工作: 渲染:渲染结构 用户体验:表单验证,效果 性能优化:懒加载,雪碧图 JavaScript的组成: BOM:浏览器对象模型 DOM:文档对象模型 - 标签元素 ECMAscript:...

吾昂王 212

javascript变量定义规则,js怎么使用变量

提示 age变量没有定义过。很可能 age 变量没有声明和赋值。或者我们输出变量名和声明的变量不一致引起的(简单说写错变量名了)。

chatgpt002的博客 234

【JavaScript】Day1——JS与变量

▊ JS初见 ▍ JavaScript是什么? 是一种运行在客户端的脚本语言 不需要编译,运行过程中由js解释器(js引擎)逐行解释并执行 可以基于Node.js技术进行服务端编程 ▍浏览器怎样执行JS? 浏览器分成两部分:渲染引擎和JS引擎 ▶ 渲染引擎:用来解释HTML和CSS,俗称内核(比如chrome浏览器的blink) ▶ JS引擎:也称为JS解释器,用来读取网页中的JavaScript代码,对其处理后运行(如chrome浏览器的V8)   ▍JS的组成? 三部分: ECMAScr

丧心病狂Loli控的博客 283

java script 变量_JavaScript的变量

变量相当于容器,值相当于容器内装的东西,而变量名就是容器上贴着的标签,通过标签可以找到 变量,以便读、写它存储的值。声明变量在 JavaScript 中,声明变量使用 var 语句。示例1在一个 var 语句中,可以声明一个或多个变量,也可以为变量赋值,未赋值的变量初始化为 undefined(未定义)值。当声明多个变量时,应使用逗号运算符分隔。var a; //声明一个变量var a,b,c;...

weixin_39646084的博客 228
上一篇: javascript基本概念
下一篇: javascript引用类型之object类型
neverland-7
博客等级 码龄16年 10粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值