首页 > 编程语言 >JavaScript中的类型、值和变量

JavaScript中的类型、值和变量

时间:2023-08-20 09:33:05浏览次数:32  
标签:变量 对象 JavaScript 字符串 数组 类型 布尔值

JavaScript的类型可以分为两个主要组别:原始类型和对象类型。JavaScript的原始类型包括数字、文本字符串(简称为字符串)和布尔值(也称为布尔值)。

特殊值nullundefined也是原始值,但它们不是数字、字符串或布尔值。这两个值通常被视为各自类型的独特成员。ES6引入了另一种特殊类型,称为Symbol,用于语言扩展而不破坏向后兼容性。

在JavaScript中,除了数字、字符串、布尔值、Symbolnullundefined之外的任何值都是对象。对象是对象类型的成员,它们是属性的集合,每个属性都有一个名称和一个值(可以是原始值或另一个对象)。还有一个非常特殊的对象,称为全局对象。

(程序员的软技能:ke.qq.com/course/6034346)

常规JavaScript对象是无序的命名值的集合。语言本身还定义了一种特殊的对象,称为数组。数组表示有序的数值集合。JavaScript包括用于操作数组的特殊语法,数组本身展现出与常规对象不同的行为。

除了基本对象和数组之外,JavaScript还定义了其他几种有用的对象类型。Set对象表示值的集合,而Map对象表示键值映射。各种“类型化数组”类型便于对字节数组和其他二进制数据进行操作。RegExp类型表示文本模式,并在字符串上支持复杂的匹配、搜索和替换操作。Date类型表示日期和时间,支持基本日期计算。Error类型及其子类表示在JavaScript代码执行过程中可能发生的错误。

将JavaScript与静态语言区分开的是,函数和类不仅仅是语法,它们本身是可以由JavaScript程序操作的值。与JavaScript中的其他非原始值一样,函数和类也是特殊类型的对象。

在内存管理方面,JavaScript解释器执行自动垃圾回收。这意味着JavaScript程序员通常不需要关心对象或其他值的销毁和释放。当一个值变得不可访问,或者不再被程序引用,解释器知道它不再需要,并自动释放它占用的内存(尽管JavaScript程序员有时应该谨慎,以防止值比预期的持续时间更长,变得无法回收)。

JavaScript支持面向对象的编程风格。实质上,这意味着不要为不同类型的值定义全局函数,而是让这些类型定义操作值本身的方法。例如,要对数组的元素进行排序,您不需要将数组传递给sort()函数;相反,您可以在数组a上调用sort()方法:

// 面向对象版本的sort(a)
a.sort()

从技术角度来看,只有JavaScript对象具有方法。但是,数字、字符串、布尔值和符号似乎也有方法。在JavaScript中,只有nullundefined不能调用方法。

JavaScript的对象类型是可变的,而其原始类型是不可变的。可变类型可以更改;例如,JavaScript程序可以修改对象的属性和数组元素。数字、布尔值、符号、nullundefined是不可变的。例如,修改数字没有意义。字符串可以被视为字符数组,您可能期望它们是可变的。但是,在JavaScript中,字符串也是不可变的。虽然您可以使用索引访问字符串中的字符,但JavaScript不提供修改字符串中现有字符的方法。

JavaScript自由地转换不同类型的值。例如,如果程序期望一个字符串,但您提供了一个数字,数字将自动转换为字符串。同样,如果在期望布尔值的地方使用非布尔值,JavaScript将相应地进行转换。

JavaScript中的这种自由值转换影响了等式的定义,等式运算符==执行类型强制转换(尽管在实践中,等式运算符==通常被避免,而使用严格等式运算符===,它不执行类型强制转换)。

常量和变量允许我们在程序中使用名称引用值。常量使用const声明,变量使用let(或在较旧的JavaScript代码中使用var)声明。JavaScript的常量和变量是无类型的;它们的声明不限制它们可以保存的值的类型。

(程序员的软技能:ke.qq.com/course/6034346)

标签:变量,对象,JavaScript,字符串,数组,类型,布尔值
From: https://www.cnblogs.com/web-666/p/17643605.html

相关文章

  • 02 基本数据类型(数字、字符串)
    一、基本数据类型1、数据类型●Python3中有六个标准的数据类型●Number(数字)●String(字符串)●List(列表)●Tuple(元组)●Dictionary(字典)●Set(集合)2、数字2.1数字类型分为:●整型(int):Python3整型没有限制大小,可以当作Long类型使用,Python3没有Python2的Long类型。●浮点型(float):浮......
  • 03-04 基本数据类型(列表、元组、字典、集合)
    一、列表1、访问列表中的值list=['red','green','blue','yellow','white','black']print(list[0])#'red'print(list[1])print(list[2])print(list[-1])#blackprint(list[-2])#whiteprint(li......
  • JavaScript性能优化指南:加速前端应用的加载速度
    在当今互联网发展迅猛的时代,用户对于网页加载速度的要求也越来越高。JavaScript是前端开发中不可或缺的一部分,但它也可能成为网页加载变慢的原因之一。本篇文章将带您了解一些JavaScript性能优化的最佳实践,以加速前端应用的加载速度。1.压缩和合并JavaScript文件减少JavaScrip......
  • JavaScript
    JS1.js导入方式1.1内部标签<script></script>1.2外部引用a.jsalert("hellojs");<scriptsrc="a.js"></script>2.基本语法<!DOCTYPEhtml><htmllang="en"><head><metacharse......
  • 变量
    变量1.常量和变量intval2=100;intval_2=100;见名知意inta=19;intage=19;intheight=182;intweight=150;intnianling=19;inttizhong=150;驼峰-下划线驼峰-WindowsintstuAge=19;intcreateDigWindow(void);下划线-Linuxintst......
  • 2.go语言基础类型漫游
    本篇前瞻本篇是go语言的基础篇,主要是帮助大家梳理一下go语言的基本类型,注意本篇有参考go圣经,如果你有完整学习的需求可以看一下,另外,go语言的基本类型比较简单,介绍过程就比较粗暴。基本类型整形这个不是韩国的“绝学”——整形术,整形在编程中可以表示一定范围内的整数注意:int......
  • Spring set 注入不同类型的参数
    案例建立复杂的数据类型Student类publicclassStudent{privateStringname;privateAddressaddress;privateList<String>books;privateMap<String,String>card;privatePropertiesinfo;privateStringwinner;privatebool......
  • XSS攻击是什么?它有哪些类型?
    xss攻击是什么?XSS全称是CrossSiteScripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了。作为一种HTML注入攻击,XSS攻击的核心思想就是在HTML页面中注入恶意代码,而XSS采用的注入方式是非常巧妙的。在XSS攻击中,一般有三个......
  • js在正则中使用变量
     将[]换行替换成需要上传的字段 ......
  • Oracle 12C 新特性-扩展数据类型,在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及
    1.查看参数max_string_size默认值SQL>showparametermax_string_sizeNAME                   TYPE                 VALUE---------------------------------------------------------------------......