当前位置: 首页 > news >正文

JavaScript数据类型

目录

JavaScripit数据类型

原始类型(Primitive Types)

1 Undefined

特点

实例

2 Null

实例

3 Boolean

重点:

常用falsy情况:

思考

4 Number,BigInt

实例

特点

NaN

5 String

在JavaScript中表示字符串有三种表示方法

模板字符串


 

 

JavaScripit数据类型

原始类型(Primitive Types)

原始类型是不可变的,即它们的值直接存储在变量位置,并且不能被改变。JavaScript中常见的5种原始类型:

Undefined

含义:我的理解是:变量/表达式/函数没有提供给调用者有用的结果

特点

1 声明变量时,没有赋初值

2 使用创建的数组,对象中不存在的属性值

3 函数或表达式没有返回结果

实例

如果按照特点理解:声明变量未赋值,会出现undefine。但如果已经赋值了,为什么还会存在undefined?

如图所示

23ffefffa61e4c9bbe177e7f6ffc1a6f.png

原因

在浏览器控制台中输入  let  a = 10 后,控制台显示 undefined 的原因与 JavaScript 的执行和返回值机制有关。

当你输入一个声明语句(如 let a = 10)时,这个语句的主要作用是声明一个变量 a 并给它赋值为 10。然而,这个语句本身并不产生任何可以返回给调用者的值。在 JavaScript 中,如果一个语句没有明确的返回值,那么它的执行结果默认是 undefined

在浏览器控制台中,当你输入一个表达式或语句并按下回车键时,控制台会尝试显示这个表达式或语句的返回值。对于声明语句(如 letconstvar 以及函数声明等),它们的主要目的是定义变量或函数,而不是返回一个值。因此,当控制台执行这些语句时,它会显示 undefined,表示这个语句没有返回任何有用的值。

 

2 Null

含义:表示空值或不存在的对象。null是一个表示“无”的特殊关键字,并且是JavaScript中的字面量。

实例

let y = null;  
console.log(y); // 输出: null

特点:一般是人为的添加null

3 Boolean

含义:表示逻辑值:true 或 false

重点:

在JavaScript中,非零即true,否则false

在JavaScript逻辑判断中,false==falsy true==truthy(意思没变,换了一种形式)

接下来,判断什么时候使用falsy 和truthy

在if条件中,出现以下情况。用falsy:

1 Nullish(null ,undefined)

2 Number bigint (0,0n,NaN),

3 字符串如“ ”,' ', ``

除此之外都是使用truthy

思考

在Java中使用if 时括号为1 表示为true吗

在 Java 中,if 语句的条件判断并不是基于括号内的数字是否为 1 来决定是否为 true相反,if 语句会评估括号内的表达式,并根据该表达式的布尔值(truefalse)来决定是否执行 if 语句块中的代码。

在 Java 中,任何可以转换为布尔值的表达式都可以用作 if 语句的条件。这包括:

  1. 布尔字面量:truefalse

  2. 关系运算符的结果:==!=><>=<=

  3. 逻辑运算符的结果:&&(逻辑与)、||(逻辑或)、!(逻辑非)。

  4. 某些特定方法调用的返回值,这些方法返回 boolean 类型的值。

数字 1 本身在 Java 中是一个 int 类型的字面量,而不是一个布尔值。但是,在 if 语句的条件中,数字 1(以及任何非零整数)会被隐式地转换为 true,而数字 0 会被转换为 false。这是因为 Java 在需要布尔值时,会将整数 0 视为 false,而将任何非零值视为 true

然而,这种隐式转换通常不推荐使用,因为它可能会导致代码的可读性降低,并且容易引入错误。更好的做法是使用明确的布尔表达式或布尔字面量。

下面是一个示例,展示了如何在 if 语句中使用数字:

int number = 1;  if (number) {  System.out.println("The number is non-zero, so the condition is true.");  
} else {  System.out.println("The number is zero, so the condition is false.");  
}

在这个例子中,由于 number 的值是 1(一个非零整数),所以 if 语句的条件被评估为 true,并且打印出了第一条消息。但是,请注意,这种做法并不推荐,因为它依赖于隐式转换,这可能会使代码难以理解和维护。更好的做法是使用明确的比较操作,如 if (number != 0)

4 Number,BigInt

Number:表示整数和浮点数。JavaScript中的所有数字都是以双精度浮点数形式存储的。

实例

996367dab4bb46d4bea2bb057eca2a79.png

如图根据返回的结果,在控制台 10表示的为浮点数,在Java中通常是用double表示,不再是我们理解的int 整型。

特点

在JavaScript中所有的整数都是浮点数的方式存储的,被使用的

使用Number实际运算过程的实例

3b410f881a8b4fcaac0b5fc87d4a8bae.png

BigInt:表示任意精度的整数。BigInt 类型在ES11(ECMAScript 2020)中引入,用于表示大于 Number 类型能表示的最大值的整数。

如果我们要在JavaScript中使用整数可以在 原本的整数后面添加 n ,表示

在这里,n表示  BigInt整数

9f1cab0ab8724555a60a23ddd43cfa39.png

Number和BigInt 的区别

精度不同:我们知道 在JavaScript中所有的数字最终都表示浮点型,但在运算中会造成精度缺失

0c681dc06ddb4af8b38633a229d782db.png

NaN

如图所示:当字符串英文转换成整数失败

72f3c105bdf143b18239cb7cd76a84bf.png

"NaN" 是 "Not a Number" 的缩写,在计算机科学和编程中,它表示一个未定义或不可表示的数值。NaN 通常出现在数学运算中,尤其是当运算的结果超出了数值类型的表示范围,或者当运算本身没有数学意义时(例如,0 除以 0)

在大多数编程语言中,NaN 是一个特殊的浮点数值,用于表示那些未定义或无法表示的运算结果。NaN 具有一些独特的性质,例如:

  1. 任何涉及 NaN 的运算结果仍然是 NaN。例如,如果 a 是 NaN,那么 a + 1、a - 1、a * 2 或 a / 2 都将是 NaN。

  2. NaN 不等于任何值,包括它自身。这意味着你不能通过简单的比较操作来检测一个值是否是 NaN。相反,你需要使用特定的函数或方法来判断。

  3. NaN 是无序的。在比较操作中,NaN 被视为既不大于也不小于任何值,包括它自身。

处理 NaN 值时,需要特别小心,因为它们可能会导致程序中的错误或异常行为。在编写代码时,应该检查可能导致 NaN 的运算,并适当地处理这些情况。

总之,NaN 是一个用于表示未定义或不可表示数值的特殊浮点数值,在编程中需要特别小心处理。

5 String

在JavaScript中表示字符串有三种表示方法

拿<a href="1.html">内容</a> 在JavaScript中用字符串表示

1 双引号:"   "

"<a href=\"1.html\">内容</a> "

思考

为什么要使用转义字符?

原因:在这个Java字符串中,每个双引号前面都有一个反斜杠(\),这是Java字符串中的转义字符,用于表示双引号是字符串的一部分,而不是字符串的结束。

  2 单引号:' ' 

'<a href="1.html">内容</a>

 3 反引号:`    `

` <a href="1.html">内容</a>   `

模板字符串

应用场景:字符串拼接

特点:模板字符串用反引号表示

实例

14acf08822334fabb863aa8001230a0e.png

 

 

 

 

相关文章:

JavaScript数据类型

目录 JavaScripit数据类型 原始类型&#xff08;Primitive Types&#xff09; 1 Undefined 特点 实例 2 Null 实例 3 Boolean 重点&#xff1a; 常用falsy情况&#xff1a; 思考 4 Number,BigInt 实例 特点 NaN 5 String 在JavaScript中表示字符串有三种表示方…...

市场中的新兴力量与未来发展

在当前瞬息万变的全球金融市场中&#xff0c;期货交易以其高杠杆与灵活性&#xff0c;吸引了越来越多的投资者参与其中。大粤期货作为中国期货行业的新兴力量&#xff0c;凭借其创新的交易平台、广泛的产品线及专业的风险管理服务&#xff0c;迅速在市场中崭露头角。本文将介绍…...

Golang | Leetcode Golang题解之第446题等差数列划分II-子序列

题目&#xff1a; 题解&#xff1a; func numberOfArithmeticSlices(nums []int) (ans int) {f : make([]map[int]int, len(nums))for i, x : range nums {f[i] map[int]int{}for j, y : range nums[:i] {d : x - ycnt : f[j][d]ans cntf[i][d] cnt 1}}return }...

Java 常用序列化对比

Java 中常用的序列化方式主要包括以下几种: 1. Java 原生序列化 使用方式: 使用 java.io.Serializable 接口。对象需要实现该接口,然后通过 ObjectOutputStream 和 ObjectInputStream 进行序列化和反序列化。 示例代码: import java.io.*;public class Person impleme…...

【redis学习篇1】redis基本常用命令

目录 redis存储数据的模式 常用基本命令 一、set 二、keys pattern keys 字符串当中携带问号 keys 字符串当中携带*号 keys 【^字母】 keys * 三、exists 四、del 五、expire 5.1 ttl命令 5.2key删除策略 5.2.1惰性删除 5.2.2定期删除 六、type key的数据类型…...

量子计算:颠覆未来计算的革命性技术

量子计算&#xff1a;颠覆未来计算的革命性技术 量子计算作为下一代颠覆性技术&#xff0c;正在引领计算领域的重大变革。与传统计算机基于比特的二进制运算不同&#xff0c;量子计算通过量子比特&#xff08;qubits&#xff09;在叠加态和纠缠态下实现并行计算&#xff0c;能…...

ctfshow-web入门(信息收集,持续更新中。。)

写在之前:近期打了个比赛,备受打击,入手了vip账号进修,加油! 文章目录 ctfshow-web1查看源代码ctfshow-web2burp抓包ctfshow-web3burp抓包ctfshow-web4访问robots.txtctfshow-web5dirscarch扫描PHPS文件泄露ctfshow-web6dirscarch扫描ctfshow-web7dirscarch扫描ctfshow-w…...

蓝桥杯【物联网】零基础到国奖之路:十五. 扩展模块之双路ADC

蓝桥杯【物联网】零基础到国奖之路:十五. 扩展模块之双路ADC 第一节 硬件解读第二节 CubeMX配置第三节 代码编写 第一节 硬件解读 STM32的ADC是12位&#xff0c;通过硬件过采样扩展到16位&#xff0c;模数转换器嵌入到STM32L071xx器件中。有16个外部通道和2个内部通道&#xf…...

李飞飞谈AI+3D发展:3D/4D AI将成为下一个重要前沿

人工智能(AI)的发展已经深刻改变了我们的世界,从简单的图像识别到复杂的自然语言处理,再到如今正在兴起的生成式模型。在这个过程中,李飞飞教授认为,3D/4D AI技术将是推动下一波变革的关键力量。以下根据她的观点整理了AI发展历程中的关键里程碑以及对3D/4D AI未来发展的…...

centos72009源码编译R语言

./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Pconnect -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Dhadoop.version3.4.0 -Pkubernetes spark3.5.3 源码版本 ./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Pconnect -P…...

初识算法 · 双指针(4)

目录 前言&#xff1a; 复写零 题目解析 算法原理 算法编写 四数之和 题目解析 算法原理 算法编写 前言&#xff1a; 本文是双指针算法的最后一文&#xff0c;以复写零和四数之和作为结束&#xff0c;介绍方式同样是题目解析&#xff0c;算法原理&#xff0c;算法编写…...

java版鸿鹄电子招投标系统功能架构设计 核心功能设计 鸿鹄电子招投标采购系统源码

java版鸿鹄电子招投标系统功能架构设计 核心功能设计 鸿鹄电子招投标采购系统源码...

matlab 判断多组数据的分布是否一致,可以使用什么方法?

在 MATLAB 中&#xff0c;可以使用以下几种方法来判断多组数据的分布是否一致&#xff1a; 1. Kolmogorov-Smirnov 检验 (K-S Test) K-S 检验是一种非参数检验&#xff0c;用于比较两组数据是否来自相同的分布。MATLAB 提供了 kstest2 函数来进行这种检验。该方法适用于连续分…...

jenkins配置eureka、nacos发布优雅上下线服务

eureka发布期间优雅上下线 1、编写eureka下线脚本 vim biz_out_of_service-eureka.pyimport sys import requests#服务名&#xff0c;脚本第一个参数 APP_NAMEsys.argv[1] # 需要置为OUT_OF_SERVICE的服务实例的ID&#xff0c;脚本第二个参数 INSTANCE_IDsys.argv[2]# Eureka…...

【JAVA开源】基于Vue和SpringBoot的周边产品销售网站

本文项目编号 T 061 &#xff0c;文末自助获取源码 \color{red}{T061&#xff0c;文末自助获取源码} T061&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…...

【C++差分数组】2381. 字母移位 II|1793

本文涉及知识点 C差分数组 LeetCode2381. 字母移位 II 给你一个小写英文字母组成的字符串 s 和一个二维整数数组 shifts &#xff0c;其中 shifts[i] [starti, endi, directioni] 。对于每个 i &#xff0c;将 s 中从下标 starti 到下标 endi &#xff08;两者都包含&#…...

【pytorch】范数的计算

近日在看沐神的《动手学深度学习》,其中提到了范数这一数学概念,感觉很陌生,参考ChatGPT补一下知识。 目录 范数示例 1: 计算向量的 L2 范数(欧几里得范数)示例 2: 计算矩阵的 Frobenius 范数示例 3: 计算向量的 L1 范数(曼哈顿距离)曼哈顿范数的定义曼哈顿范数的计算示…...

MATLAB|基于多主体主从博弈的区域综合能源系统低碳经济优化调度

目录 主要内容 程序亮点&#xff1a; 模型研究 一、综合能源模型 二、主从博弈框架 部分代码 结果一览 下载链接 主要内容 程序参考文献《基于多主体主从博弈的区域综合能源系统低碳经济优化调度》&#xff0c;采用了区域综合能源系统多主体博弈协同优化方…...

Django 后端数据传给前端

Step 1 创建一个数据库 Step 2 在Django中点击数据库连接 Step 3 连接成功 Step 4 settings中找DATABASES Step 5 将数据库挂上面 将数据库引擎和数据库名改成自己的 Step 6 在_init_.py中加上数据库的支持语句 import pymysql pymysql.install_as_MySQLdb() Step7 简单创建两…...

elasticsearch 写入新数据测试(二)

背景:elasticsearch单个node节点写入数据-CSDN博客 需要设置密码才能作为外部调用,不设置我不会用。设置方法见上一篇。 设置密码出现如下问题: Unexpected response code [503] from calling PUT http://172.19.0.1:9200/_security/user/apm_system/_password?pretty …...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...