4.3 JavaScript变量

news2025/1/12 20:43:34

4.3.1 变量的声明

       JavaScript是一种弱类型的脚本语言,无论是数字、文本还是其他内容,统一使用关键词var加上变量名称进行声明,其中关键词var来源于英文单词variable(变量)的前三个字母。

可以在声明变量的同时对其指定初始值;也可以先声明变量,再另行赋值。例如:

var x = 2;
var msg = "Hello JavaScript!";
var name;

常见变量的赋值为数字或文本形式。当变量的赋值内容为文本时,需要使用引号(单引号、双引号均可)括住内容;当为变量赋值为数字的时候,内容不要加引号,否则会被当作字符串处理。 

JavaScript也允许使用一个关键词var同时定义多个变量。例如:

var x1, x2, x3; //一次定义了三个变量名称

同时定义的变量类型可以不一样,并且可为其中部分或全部变量进行初始化。例如:

var x1=2, x2="Hello", x3;

 由于JavaScript变量是弱类型的,因此同一个变量可以用于存放不同类型的值。例如可以声明一个变量初始化时用于存放数值,然后将其更改为存放字符串。代码如下:

var x = 99; //初始化时变量x存放的是数值99
x = "Hello"; //将变量x更改为存放字符串"Hello"

这段代码从语法上来说没有任何问题,但是为了良好的编程习惯不建议此种做法。应该将变量用于保存相同类型的值。 

 变量的声明不是必须的,可以不使用关键词var声明直接使用。例如:

msg1 = "Hello"
msg2 = "JavaScript";
msg = msg1+" "+msg2;
alert(msg); //运行结果为显示Hello JavaScript

上述代码中的msg1msg2msg均没有使用关键词var事先声明就直接使用了,这种写法也是有效的。当程序遇到未声明过的名称时,会自动使用该名称创建一个变量并继续使用。 

4.3.2 变量的命名规范

一个有效的变量命名需要遵守以下两条规则:

首位字符必须是字母( A- Za -z )、下划线( _ )或者美元符号( $ );
其他位置上的字符可以是下划线( _ )、美元符号( $ )、数字( 0-9 )或字母( A- Za -z )。

例如: 

var hello; //正确
var _hello; //正确
var $hello; //正确
var $x_$y; //正确
var 123; //不正确,首位字符必须是字母、下划线或者美元符号
var %x; //不正确,首位字符必须是字母、下划线或者美元符号
var x%x; //不正确,中间的字符不能使用下划线、美元符号、数字或字母以外的内容

常用的变量命名方式有Camel标记法、Pascal标记法和匈牙利类型标记法等。

  • Camel标记法:又称为驼峰标记法,该规则声明的变量首字母为小写,其他单词以大写字母开头。例如:var myFirstScriptvar myTest等。
  • Pascal标记法:该规则声明的变量所有单词首字母均大写。例如:var MyFirstScriptvar MyTest等。
  • 匈牙利类型标记法:该规则是在Pascal标记法的基础上为变量加一个小写字母的前缀,用于提示该变量的类型,如i表示整数、s表示字符串等。例如:var sMyFirstScriptvar iMyTest等。

4.3.3 JavaScript关键字和保留字

       JavaScript遵循ECMA-262标准中规定的一系列关键字规则,这些关键字不能作为变量或者函数名称。

全部关键字共计25个,如表所示。

       ECMA-262中还规定了一系列保留字,这些字是为将来的关键字而保留的单词,同样也不可以作为变量或者函数的名称。全部保留字共计31个,如表所示。 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汇川AM400PLC通过EtherCAT总线控制禾川X3E伺服使能和点动控制

进行通信之前需要安装禾川X3E的XML文件,具体方法如下: 1、汇川AM400PLC和X3E通信配置 汇川AM400PLC和禾川X3E伺服EtherCAT通信-CSDN博客文章浏览阅读29次。1、汇川H5UPLC和X3E伺服EtherCAT总线控制汇川H5U PLC通过EtherCAT总线控制SV660N和X3E伺服_伺服…

转速和频率转换功能块(CODESYS ST源代码)

1、转速/频率常用转换关系 转速/频率/线速度/角速度计算FC_200 plc计算角速度-CSDN博客文章浏览阅读3.2k次。里工业控制张力控制无处不在,也衍生出很多张力控制专用控制器,磁粉制动器等,本篇博客主要讨论PLC的张力控制相关应用和算法,关于绕线机的绕线算法,大家可以参看专…

并行魔法:揭秘scikit-learn中的Bagging并行训练技术

并行魔法:揭秘scikit-learn中的Bagging并行训练技术 随着大数据时代的到来,机器学习模型的训练时间越来越长,尤其是在处理大规模数据集时。如何高效地训练模型成为了一个亟待解决的问题。幸运的是,scikit-learn库为我们提供了一种…

如何访问远程MySQL数据库?

访问远程MySQL数据库是在进行数据库开发和运维工作中经常遇到的需求。本文将介绍如何使用合适的工具和方法进行远程访问MySQL数据库。 什么是天联组网 天联组网是一款异地组网内网穿透产品,由北京金万维科技有限公司自主研发。天联能够在任何网络环境下实现不同地区…

Vitis HLS 学习笔记--HLS眼中的完美循环嵌套

目录 1. 简介 2. 示例 2.1 不完美循环 2.2 完美循环 2.3 HLS 眼中的循环 3. 总结 1. 简介 在处理嵌套循环时(HDL或HLS工具中),优化循环结构对于实现最佳性能至关重要。嵌套循环的性能优化直接影响着计算的时延和资源利用率。创建完美嵌…

Redis 实战2

系列文章目录 本文将从字典的实现、哈希算法、解决键冲突、rehash、渐进式rehash几方面来阐述 Redis 实战Ⅱ 系列文章目录字典的实现哈希算法解决键冲突rehash渐进式 rehash渐进式 rehash 执行期间的哈希表操作 字典 API总结 字典的实现 Redis 的字典使用哈希表作为底层实现&…

什么是数据工程?

目录 一、什么是数据工程? 二、数据工程在医疗行业中的应用 三、数据工程在精准医疗方面的应用有哪些? 一、什么是数据工程? 数据工程是一个综合性的技术学科,涵盖了从数据的收集、存储、处理、分析到应用的整个数据处理过程。…

深入了解 Arthas:Java 应用程序诊断利器

序言 在 Java 应用程序的开发和运维过程中,诊断和解决性能问题是一项非常重要的任务。而 Arthas 作为一款由阿里巴巴开发的 Java 应用程序诊断工具,提供了一系列强大的功能,帮助开发人员实时监控、诊断和调优Java 应用程序。本文将深入介绍 …

光伏光热一体化技术PVT

1、PVT集热器简介 太阳能光伏光热一体化组件主要由光伏与光热两个部分组成。光伏部分采用技术成熟的太阳能光伏面板,通过控制系统为建筑提供所需电能,主要包括光伏电池、蓄电池、逆变器和控制器等构件。光热部分主要为集热器,将太阳能转换为热…

禅道项目管理系统 身份验证漏洞分析QVD-2024-15263

前言 最近不怎么更新了!向小伙伴说明下 我不是什么组织 更不什么经销号(尽管csdn有很多经销广告号) 一确实是下岗了!忙着为找工作而发愁。简历都投出去如同石沉大海能不愁吗!.哎...... 二是忙着论文及材料的事...…

领域驱动设计(DDD)笔记(一)基本概念

文章链接 领域驱动设计(DDD)笔记(一)基本概念-CSDN博客领域驱动设计(DDD)笔记(二)代码组织原则-CSDN博客领域驱动设计(DDD)笔记(三)后…

嵌入式开发四:STM32 基础知识入门

为方便更好的学习STM32单片机,本篇博客主要总结STM32的入门基础知识,重点在于理解寄存器以及存储器映射和寄存器映射,深刻体会STM32是如何组织和管理庞大的寄存器,从而提高开发效率的,为后面的基于标准库的开发做好铺垫…

Elasticsearch:对 Java 对象的 ES|QL 查询

作者:Laura Trotta ES|QL 是 Elasticsearch 引入的一种新的查询语言,它将简化的语法与管道操作符结合起来,使用户能够直观地推断和操作数据。官方 Java 客户端的新版本 8.13.0 引入了对 ES|QL 查询的支持,提供了一个新的 API&…

手撸Mybatis(四)——连接数据库进行简单查询

本专栏的源码:https://gitee.com/dhi-chen-xiaoyang/yang-mybatis。 添加数据库操作模板 对于JDBC操作,一般包括以下几个步骤: 1)注册驱动 2)建立连接 3)执行sql语句 4)处理结果 5&#xff09…

【neteq】tgcall的调用、neteq的创建及接收侧统计

G:\CDN\P2P-DEV\Libraries\tg_owt\src\call\call.cc基本是按照原生webrtc的来的:G:\CDN\P2P-DEV\tdesktop-offical\Telegram\ThirdParty\tgcalls\tgcalls\group\GroupInstanceCustomImpl.cpptg对neteq的使用 worker 线程创建call Call的config需要neteqfactory Call::CreateAu…

Boosting算法揭秘:从原理到scikit-learn实战

Boosting算法揭秘:从原理到scikit-learn实战 在机器学习的江湖中,Boosting算法以其强大的预测能力和独特的训练方式占据了一席之地。与Bagging算法并行训练的理念不同,Boosting算法更注重模型的串行迭代和错误修正。本文将从Boosting算法的基…

JVM笔记1--Java内存区域

1、运行时数据区域 从上图可以看出来,Java虚拟机运行时数据区域整体上可以分成5大块: 1.1、程序计数器 程序计数器是一块较小的内存空间。它可以看做当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里,字节码解释器工作时就是…

【热门话题】Chrome 插件研发详解:从入门到实践

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Chrome 插件研发详解:从入门到实践一、引言二、Chrome 插件基础概念…

汇编语言——输入两个字数据(16位的数)X,Y,计算Z=X+Y,并把Z的结果显示出来

文章目录 以2进制输入,2进制输出(无符号)以2进制输入,2进制输出(带符号)以8进制输入,8进制输出以10进制输入,10进制输出以16进制输入,16进制输出 仅供参考 X、Y的输入可…

08 - 步骤 表输出

简介 表输出(Table Output)步骤是用于将 Kettle 中的数据写入关系型数据库表的步骤。它允许用户将数据流中的数据插入、更新或删除到目标数据库表中。 使用 场景 我要将处理完的数据流中的sysOrgCode 跟 plateNumber 保存记录到mysql 1、拖拽表输出…