讲师中心 微信公众号
AI工具推荐 视频效率加速

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

夜宇君_3999

夜宇君_3999

发布时间:2025-12-16 21:19:00

|

482人浏览过

|

来源于php中文网

原创

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

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

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

基本数据类型(Primitive Types)

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

  • string:文本,如 "hello"、'world'、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 提供三种声明变量的关键字,影响作用域和提升行为:

Alibabacloud Sdk Client Initialization For Java
Alibabacloud Sdk Client Initialization For Java

在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。

下载

立即学习“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 声明的对象不是“不可变”,只是不能重新赋值。

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2451

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

494

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

422

2026.02.12

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

5299

2023.08.02

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

5299

2023.08.02

java值传递和引用传递有什么区别
java值传递和引用传递有什么区别

java值传递和引用传递的区别:1、基本数据类型的传递;2、对象的传递;3、修改引用指向的情况。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

166

2024.02.23

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

120

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

40

2026.09.23

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

40

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WebStorm 官方调试文档
WebStorm 官方调试文档

共0课时 | 0人学习

React 教程
React 教程

共58课时 | 12万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 6.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn