JavaScript的变量和数据类型有哪些?

JavaScript变量无类型,类型属于值;基本数据类型共7种,不可变且按值传递,如string表示文本。

javascript的变量和数据类型有哪些?

JavaScript 的变量本身没有类型,类型是绑定在值上的;变量只是指向某个值的“名字”。真正重要的是数据类型——它决定了你能对这个值做什么操作。

基本数据类型(Primitive Types)

共 7 种,都是不可变的、按值传递:

string:文本,如 “hello”、’world’、`template ${x}` number:所有数字(整数、小数、NaN、Infinity),如 42、3.14、NaN boolean:只有两个值:true 和 false null:一个独立的原始值,表示“空值”或“有意缺失的对象引用” undefined:变量声明了但未赋值时的默认值,也用于对象中不存在的属性 symbol:ES6 新增,用于创建唯一标识符,常用于对象属性名避免冲突 bigint:ES2020 新增,表示任意精度的整数,用 123n 语法创建

引用数据类型(Object Types)

所有非原始类型的值都属于这一类,本质是对象(包括函数、数组等),按引用传递:

object:普通对象,如 { name: “Alice”, age: 30 } array:有序集合,如 [1, 2, 3] —— 实际上是特殊对象,有 length 和方法 function:函数也是对象,可赋值、传参、返回,如 function foo() {} date:日期对象,如 new Date() regexp:正则表达式对象,如 /abc/g map 和 set:ES6 新增的集合类型,支持键值对或唯一值存储 weakmap 和 weakset:弱引用版本,不影响垃圾回收 promise:异步操作的占位符对象 proxy、reflect、iterator 等高级内置对象

变量声明方式与行为差异

JS 提供三种声明变量的关键字,影响作用域和提升行为:

立即学习“Java免费学习笔记(深入)”;

var:函数作用域,会变量提升(hoisting),可重复声明 let:块级作用域,会提升但不初始化(暂时性死区 TDZ),不可重复声明 const:块级作用域,声明后必须赋值,且不能重新赋值(注意:对象/数组内容仍可修改)

如何判断数据类型?

没有万能方法,需组合使用:

typeof:适合判断原始类型(但 typeof null === “object” 是历史 bug) Array.isArray():准确判断是否为数组 instanceof:检测对象是否由某构造函数创建(依赖原型链) Object.prototype.toString.call(x):最可靠,返回 “[object Type]” 字符串

基本上就这些。理解类型归属和变量行为,比死记数量更重要——尤其注意 null 的 typeof 返回 “object”,以及 const 声明的对象不是“不可变”,只是不能重新赋值。

以上就是JavaScript的变量和数据类型有哪些?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1542981.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
javascript对象如何创建_有哪些属性描述符
上一篇 2025年12月21日 14:39:53
javascript如何实现组合组件_有哪些模式
下一篇 2025年12月21日 14:40:05

相关推荐

  • Java中默认访问修饰符的作用

    默认访问修饰符允许同一包内的类访问成员,提供包级私有保护。适用于类、接口、字段、方法和构造器,增强封装性与模块化,建议在无需跨包访问时优先使用,默认访问提升代码安全与结构清晰度。 在Java中,如果没有显式指定访问修饰符(如public、private或protected),那么类、方法、变量等成员…

    2026年10月3日
    000
  • mysql中and必须大写吗 mysql关键字大小写规则

    在mysql中,关键字不需要大写,因为mysql对关键字大小写不敏感。1)你可以使用and、and、and等形式,mysql都能正确识别和执行。2)但在实际开发中,统一的编码风格很重要,很多团队选择使用大写关键字以区分关键字和标识符,提高代码可读性。3)mysql对标识符的处理可以通过lower_c…

    2026年10月3日
    1300
  • Craft CMS 元素预加载:自定义参数与 PHP 数组语法陷阱解析

    本文深入探讨了在 Craft CMS 中为预加载(Eager-Loaded)元素定义自定义参数的方法,重点解决了一个常见的 PHP 语法错误:在 with() 方法中为关联元素传递参数时,误用 JavaScript 风格的对象字面量 {} 而非正确的 PHP 数组语法 []。通过具体示例,文章演示了…

    2026年10月3日
    100
  • 2025 年 Python 现状:83% 仍在运行旧版,Python Web 开发复兴

    2025 年 Python 现状:83% 仍在运行旧版,Python Web 开发复兴2025 年 Python 现状:83% 仍在运行旧版,Python Web 开发复兴2025 年 Python 现状:83% 仍在运行旧版,Python Web 开发复兴2025 年 Python 现状:83% 仍在运行旧版,Python Web 开发复兴

    第八届年度 python 开发者调查现已正式发布,基于来自全球超过 30,000 名 python 开发者的反馈。本次调研由 python software foundation 联合 jetbrains 的 pycharm 团队共同完成。 2025 年 Python 现状(精简速览)半数 Pyth…

    2026年10月3日 • 用户投稿
    200
  • Java字符串压缩实战:优化重复字符计数与末尾处理

    本教程深入探讨Java中字符串压缩(如abbbccccc压缩为ab3c4)的实现方法。我们将重点解析常见的循环计数逻辑,并着重解决在处理字符串末尾连续字符时容易出现的计数遗漏问题。通过提供优化后的代码示例和详细解释,帮助开发者构建健壮高效的字符串压缩功能。 什么是字符串压缩? 字符串压缩是一种常见的…

    2026年10月2日
    300
  • Kimi Chat网页总结不准?如何精准提取核心信息

    Kimi Chat网页总结不准?如何精准提取核心信息Kimi Chat网页总结不准?如何精准提取核心信息Kimi Chat网页总结不准?如何精准提取核心信息Kimi Chat网页总结不准?如何精准提取核心信息

    kimi chat网页总结不准的原因及解决方法如下:1. 网页结构解析与数据清洗,使用beautiful soup、lxml等html解析库提取正文内容,并通过正则表达式去除噪声信息;2. 信息过滤与重要性排序,采用关键词提取、tf-idf、textrank等算法筛选关键信息,并结合自定义停用词表和…

    2026年10月2日 • 用户投稿
    000
  • 反转字符串绕杀软

    反转字符串绕杀软反转字符串绕杀软反转字符串绕杀软反转字符串绕杀软

    在github有一个ssi的项目,项目地址如下:https://github.com/dimopouloselias/simpleshellcodeinjector/他可以实现shellcode的远程加载(十六进制),当然ldrakura也曾经搞过类似的项目(我偷电瓶车养你啊),当时还是一次项目时绕…

    2026年10月2日 • 用户投稿
    100
  • 共谋业务智胜之道 2025 VDC互联网技术分会引关注

    共谋业务智胜之道 2025 VDC互联网技术分会引关注共谋业务智胜之道 2025 VDC互联网技术分会引关注共谋业务智胜之道 2025 VDC互联网技术分会引关注共谋业务智胜之道 2025 VDC互联网技术分会引关注

    2025年度vivo开发者大会于10月10日顺利召开,延续“同心·同行”的主题,设置了主会场及11个专题分会场。在互联网技术分会中,多位vivo技术专家围绕拨测与融合流量管理、微服务架构优化、全链路多版本环境落地、gpu容器化与ai训练平台建设等方向,分享了最新的技术探索与实践经验,与线上观众共同探…

    2026年10月2日 • 用户投稿
    100
  • Java自定义类方法链式调用与对象状态修改实践

    在Java中,实现自定义类方法链式调用以修改对象属性的关键在于让修改方法返回当前类的实例(this)。通过返回this,不仅可以连续调用同一对象的其他方法,还能将操作后的对象赋值给同类型变量,从而构建出更简洁、流畅的代码风格。 引言:理解Java方法链式调用的需求 在java编程中,我们经常会遇到需…

    2026年10月2日
    300
  • 掌握Java方法返回类型:字符与字符串在条件判断中的应用

    本教程旨在解决Java方法中根据条件返回特定标识符(如’A’,’B’,’C’)时常见的类型错误。我们将分析将字符字面量赋给整型变量并尝试返回的潜在问题,并提供两种标准且健壮的解决方案:通过将方法返回类型和变量声明为char类型,…

    2026年10月2日
    100
  • Win10 Chromium Edge新权限:阻止不安全内容

    Win10 Chromium Edge新权限:阻止不安全内容Win10 Chromium Edge新权限:阻止不安全内容Win10 Chromium Edge新权限:阻止不安全内容Win10 Chromium Edge新权限:阻止不安全内容

    和市面上多数其他浏览器一样,基于chromium内核的microsoft edge已经内置了一些规则,用于针对我们访问的每一个网站来设定权限。当然,为了提高操作便捷性,我们也能为所有页面统一配置规则,这样就能保证网站对文件、摄像头、麦克风等资源的访问能够得到妥善处理。 近期,微软在其最新的Canar…

    2026年10月2日 • 用户投稿
    100
  • Js处理滚动条和日期框

    Js处理滚动条和日期框Js处理滚动条和日期框Js处理滚动条和日期框Js处理滚动条和日期框

    文章总览图 此思维导图中的语法要结合文章内容来看,切记不可死读书,要活学活用。 Js处理1.常用的元素基本操作是什么? 四个基本操作。 1.send_keys() 2.click() 3.获取元素的文本内容。 4.获取元素的属性。 find_element_by_xpath()是我们的元素对象。 .…

    2026年10月2日 • 用户投稿
    200
  • SublimeText快捷键实现代码注释与取消注释

    SublimeText快捷键实现代码注释与取消注释SublimeText快捷键实现代码注释与取消注释SublimeText快捷键实现代码注释与取消注释SublimeText快捷键实现代码注释与取消注释

    在sublime text中,使用快捷键注释和取消注释代码的方法是:1. windows/linux使用ctrl + /,2. macos使用cmd + /。这些快捷键适用于单行和多行注释,提升了开发效率。 引言 在这个快节奏的编程世界中,效率就是一切。Sublime Text,作为一款深受开发者喜…

    2026年10月2日 • 用户投稿
    100
  • 用快捷键在SublimeText中进行代码查找和替换

    用快捷键在SublimeText中进行代码查找和替换用快捷键在SublimeText中进行代码查找和替换用快捷键在SublimeText中进行代码查找和替换用快捷键在SublimeText中进行代码查找和替换

    在sublimetext中,查找使用cmd + f/ctrl + f,替换使用cmd + shift + f/ctrl + shift + f。1. 按快捷键打开查找或替换面板。2. 输入查找和替换内容,可选用正则表达式和”in project”选项。3. 进行查找确认后再替…

    2026年10月2日 • 用户投稿
    300
  • js 如何用once创建只执行一次的函数

    js 如何用once创建只执行一次的函数js 如何用once创建只执行一次的函数js 如何用once创建只执行一次的函数js 如何用once创建只执行一次的函数

    once函数通过闭包维护called状态,确保传入函数只执行一次,首次调用时执行并返回结果,后续调用直接返回undefined;2. 除闭包外,也可用对象属性存储状态实现once,原理相同但写法不同;3. 实际应用包括初始化操作、事件监听、防止表单重复提交和数据缓存,均用于需函数仅执行一次的场景,提…

    2026年10月2日 • 用户投稿
    100
  • JavaScript数据属性值安全转换为数字的专业指南:避免NaN的策略

    本教程详细阐述了在JavaScript中如何安全地将HTML数据属性(data attributes)的值转换为数字,并确保在值无效时返回0,从而有效避免在计算中出现NaN。文章重点介绍了使用parseFloat()而非Number()进行转换,并强调了将|| 0操作符正确放置在转换函数外部的关键性…

    2026年10月2日
    100
  • 禁用SublimeText插件以提升性能的操作步骤

    禁用SublimeText插件以提升性能的操作步骤禁用SublimeText插件以提升性能的操作步骤禁用SublimeText插件以提升性能的操作步骤禁用SublimeText插件以提升性能的操作步骤

    禁用sublimetext插件可以提升编辑器性能。具体步骤是:1. 打开包管理器(ctrl+shift+p/windows/linux或cmd+shift+p/mac),输入并选择“package control: disable package”。2. 从列表中选择并禁用不常用插件。3. 重启su…

    2026年10月2日 • 用户投稿
    100
  • 夸克浏览器如何禁用JavaScript_夸克浏览器禁用网页JS脚本设置步骤

    夸克浏览器如何禁用JavaScript_夸克浏览器禁用网页JS脚本设置步骤夸克浏览器如何禁用JavaScript_夸克浏览器禁用网页JS脚本设置步骤夸克浏览器如何禁用JavaScript_夸克浏览器禁用网页JS脚本设置步骤夸克浏览器如何禁用JavaScript_夸克浏览器禁用网页JS脚本设置步骤

    1、可在夸克浏览器中通过高级设置关闭JavaScript以提升隐私保护并防止恶意脚本;2、启用无痕模式可临时限制脚本运行;3、通过自定义过滤规则可屏蔽特定JS文件加载。 如果您在浏览网页时遇到页面加载异常或希望提升隐私保护,可能需要禁用JavaScript来阻止某些脚本运行。夸克浏览器提供了对JS脚…

    2026年10月2日 • 用户投稿
    100
  • 怎么让豆包AI生成Python数据库连接代码

    怎么让豆包AI生成Python数据库连接代码怎么让豆包AI生成Python数据库连接代码怎么让豆包AI生成Python数据库连接代码怎么让豆包AI生成Python数据库连接代码

    想让豆包ai生成python连接数据库的代码,关键在于清楚表达需求。1. 明确数据库类型(如mysql、postgresql、sqlite)及是否使用orm框架(如sqlalchemy)。2. 提供必要参数信息,包括host、user、password、database等字段。3. 可要求加入异常处…

    2026年10月2日 • 用户投稿
    200
  • 如何让豆包AI编写Python日志记录功能

    如何让豆包AI编写Python日志记录功能如何让豆包AI编写Python日志记录功能如何让豆包AI编写Python日志记录功能如何让豆包AI编写Python日志记录功能

    要让豆包ai写出实用的python日志功能,关键在于明确需求并结构化提问。首先需说明日志输出位置(如控制台或文件)、格式要求(如时间戳、级别、模块名)、日志级别(如info及以上)以及是否需要按天或大小分割日志;例如可提问:“请用logging模块写一个函数,1. 输出到控制台和app.log;2.…

    2026年10月2日 • 用户投稿
    100

发表回复

登录后才能评论
关注微信