Javascript 数据类型详解:7种基本类型、3种引用类型

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。

在这里插入图片描述

No.内容链接
1Openlayers 【入门教程】 - 【源代码+示例300+】
2Leaflet 【入门教程】 - 【源代码+图文示例 150+】
3Cesium 【入门教程】 - 【源代码+图文示例200+】
4MapboxGL【入门教程】 - 【源代码+图文示例150+】
5前端就业宝典 【面试题+详细答案 1000+】

在这里插入图片描述

文章目录

    • 一、基本数据类型(Primitive Types)
    • 二、引用数据类型(Reference Types)
    • 三、注意事项


JavaScript具有动态类型,这意味着变量的类型可以在运行时改变。JavaScript主要有以下几种数据类型:

一、基本数据类型(Primitive Types)

  1. 字符串(String):任何文本,可以用单引号(’ ')或双引号(" ")包围。

    let str = 'Hello, World!';
    
  2. 数字(Number):整数或浮点数。

    let num = 42;
    let floatNum = 3.14;
    
  3. 布尔值(Boolean):只有两个值,truefalse

    let boolTrue = true;
    let boolFalse = false;
    
  4. undefined:表示变量已被声明但未被赋值。

    let unassignedVar;
    console.log(unassignedVar); // 输出 undefined
    
  5. null:表示一个空值或无值。

    let emptyValue = null;
    
  6. Symbol(ES6引入):唯一且不可变的数据类型,主要用作对象的键。

    let uniqueSymbol = Symbol();
    
  7. BigInt(ES2020引入):用于存储大于Number.MAX_SAFE_INTEGER的整数。

    let bigInt = 9007199254740992n; // 注意结尾的'n'
    

二、引用数据类型(Reference Types)

  1. 对象(Object):无序属性的集合,属性可以是任意数据类型。

    let obj = { key: "value", anotherKey: 42 };
    
  2. 数组(Array):有序的元素集合,元素可以是任意数据类型。

    let arr = [1, "text", true];
    
  3. 函数(Function):JavaScript的一等公民,可以作为变量或对象的属性。

    function sayHello(name) {console.log("Hello, " + name + "!");
    }
    

三、注意事项

  • 类型转换:JavaScript会自动进行类型转换,比如在比较不同类型时,这可能导致非直观的结果,应谨慎处理。
  • NaN:Not-a-Number,是一个特殊的Number类型值,用于表示不是一个数字的值。
  • 类型检测:推荐使用typeof操作符检测基本类型,但对于Object,包括数组和函数,使用Array.isArray()instanceof来精确判断更佳。
  • 空值合并运算符(??):ES2020引入,用于返回第一个非null和非undefined的值,例如 let result = maybeNull ?? "default";
  • 可选链(?.):ES2020引入,安全地访问深层嵌套的属性,避免因中间属性不存在而导致的错误,如 let value = obj?.property?.subProperty;

理解并熟练运用JavaScript的数据类型,是进行高效和安全编程的基础。

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

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

相关文章

LightDB PLSQL介绍(第一篇)

文章目录 概述开发工具ltsql PL/SQL基础程序结构匿名块存储过程函数 数据类型 控制语句条件语句IF 条件语句CASE条件语句 循环语句简单LOOPFOR LOOPWHILE循环循环退出循环继续 循序控制 静态语句动态语句游标隐式游标隐式游标属性隐式游标的异常处理 显式游标声明显式游标打开显…

【CesiumJS入门】(12)Vite+Vue3+Cesium 简易安装与配置

步骤 vite 创建项目:yarn create vite安装 Cesium:yarn add cesium安装 vite-plugin-static-copy:yarn add -D vite-plugin-static-copy 配置 vite.config.js : import { defineConfig } from "vite"; import vue fro…

制作自己的 ButterKnife(使用 AutoService 和 APT 注解处理器在编译期生成 Java 代码)

ButterKnife 开发过 Android 的肯定都知道曾经有这么一个库,它能够让你不用再写 findViewById 这样的代码,这就是大名鼎鼎的 ButterKnife(https://github.com/JakeWharton/butterknife)。虽然现在这个库已经不再维护,…

LabVIEW实现汽车逆变器功能测试系统

​介绍了如何利用LabVIEW开发汽车逆变器(包括功率板和控制板)的自动测试设备(ATE),实现对额定800V电压、300A电流的逆变器进行功能测试。系统通过CAN2.0通讯协议,实现电机控制、温度传感器监测、电压校验和…

Java程序策——Java连接数据库保姆级教程(超详细步骤)

【Java程序策】——连接数据库 目录 ​编辑 一:在数据库中建立一个表(student表) 1.1:进入mysql 1.2:建立一个“数据库成员” 1.3:建立一个表(student表) 1.4:给表…

pytorch学习day5

一、权值初始化 在深度学习中,权值初始化是神经网络训练中关键的一步。正确的权值初始化可以帮助加速收敛速度,提高模型的稳定性和泛化能力。在PyTorch中,我们可以通过torch.nn.init模块中的函数来实现不同的权值初始化方法。 1.常规初始化 P…

算法刷题笔记 判断子序列(C++实现)

文章目录 题目描述基本思路实现代码 题目描述 给定一个长度为n的整数序列a1,a2,…,an以及一个长度为m的整数序列b1,b2,…,bm。请你判断a序列是否为b序列的子序列。子序列指序列的一部分项按原有次序排列而得的序列,例如序列{a1,a3,a5}是序列{a1,a2,a3,a4,a5}的一个…

MATLAB 函数 function

函数定义函数调用局部函数匿名函数函数句柄子函数函数文件的位置函数的文档函数的参数函数的返回值总结 在 MATLAB中,函数是一个执行特定任务的代码块,可以被重复调用。 MATLAB函数可以执行计算、数据操作、文件处理等任务,并且可以接收输入…

AI市场驱动HBM持续爆火

随着人工智能市场的蓬勃发展,对AI处理器的需求激增,内存制造巨头正积极扩大高带宽内存(HBM)的产能,并努力提高其良率和竞争力。最新的动态是美光在日本广岛县计划建设新工厂,旨在最早于2027年开始生产芯片和…

关于 spring boot 的目录详解和配置文件

目录 配置文件 spring boot 的配置文件有两种格式,分别是 properties 和 yml(yaml)。这两种格式的配置文件是可以同时存在的,此时会以 properties 的文件为主,但一般都是使用同一种格式的。 格式 properties 语法格…

36. 【Java教程】输入输出流

本小节将会介绍基本输入输出的 Java 标准类,通过本小节的学习,你将了解到什么是输入和输入,什么是流;输入输出流的应用场景,File类的使用,什么是文件,Java 提供的输入输出流相关 API 等内容。 1…

C#之位运算符

位运算符 位运算符 主要是用于数值类型计算运算方式: 将数值转换为二进制 在进行位运算返回的是一个二进制转十进制的数值如果二进制数 不够位置 则在前面补零 位与 & 符号 :& 链接两个数值进行运算 将数值转换为二进制 对位运算 有1则1 用法: 先将a和…

逆天面试题-

扪心自问&#xff0c;不借助第三变量实现两个变量value的交换&#xff0c;你怎么做&#xff1f; 3 2 1 看两种思路&#xff1a; 一.联想运算 不多说&#xff0c;试着去感受它的奇妙 #include<iostream> using namespace std; int main(){int a 3;int b 5;a a …

eNSP学习——OSPF的DR与BDR

目录 相关命令 原理概述 实验内容 实验目的 实验拓扑 实验编址 实验步骤 1、基本配置 2、搭建基本的OSPF网络 3、查看默认情况下的DR/BDR状态 4、根据现网需求影响DR/BDR选举 需要eNSP各种配置命令的点击链接自取&#xff1a;华为&#xff45;NSP各种设备配置命令大…

小白级教程—安装Ubuntu 20.04 LTS服务器

下载 本教程将使用20.04版进行教学 由于官方速度可能有点慢&#xff0c;可以下方的使用清华镜像下载 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/ 点击20.24版本 选择 ubuntu-20.04.6-live-server-amd64.iso 新建虚拟机 下载好后 我们使用 VMware 打开它 这里选…

数组的详细介绍

数组是一组相同类型元素的集合&#xff0c;也就是说&#xff1a;数组至少包含两个及以上的元素&#xff0c;且元素类型相同。 数组包括一维数组和多维数组&#xff0c;其中二维数组最常见。下面我们一一介绍。 一维数组&#xff1a; 格式&#xff1a;type name [常量值]&…

PHP中使用RabbitMQ实现异步发送电子邮件可以显著提升应用的表现,尤其是在需要大量发送邮件的场景下

前提条件 安装RabbitMQ服务。 安装PHP的RabbitMQ客户端库&#xff08;php-amqplib&#xff09;。 安装邮件发送库&#xff08;如PHPMailer&#xff09;。 安装php-amqplib和PHPMailer 首先&#xff0c;通过Composer安装这些库&#xff1a; composer require php-amqplib/…

2024开放式耳机怎么买才好?这里可以教你六招!

有不少人都在说“开放式蓝牙耳机无音质”&#xff0c;大多数的购买者往往既贪恋蓝牙耳机的便携性&#xff0c;又想要有线耳机的Hifi快感&#xff0c;对于我们来说最重要的就是确定预算和需求&#xff0c;这样才能定位到最适合自己的开放式蓝牙耳机。这么多年零零总总听下来的蓝…

前端面试题日常练-day51 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末 1. 在PHP中&#xff0c;以下哪个函数用于向浏览器发送一个HTTP头部&#xff1f; a) header() b) send() c) echo() d) print() 2. 哪个PHP函数用于将字符串转换为整数&#xff1f; a) stringToInt…

【python】成功解决“ModuleNotFoundError: No module named ‘IPython’”错误的全面指南

成功解决“ModuleNotFoundError: No module named IPython’”错误的全面指南 一、引言 在Python编程中&#xff0c;ModuleNotFoundError是一种常见的错误类型&#xff0c;它通常表明Python解释器无法找到你试图导入的模块。特别是当你遇到“ModuleNotFoundError: No module…