JavaScript数据类型

目录

JavaScripit数据类型

[原始类型(Primitive Types)](#原始类型(Primitive Types))

[1 Undefined](#1 Undefined)

特点

实例

[2 Null](#2 Null)

实例

[3 Boolean](#3 Boolean)

重点:

常用falsy情况:

思考

[4 Number,BigInt](#4 Number,BigInt)

实例

特点

NaN

[5 String](#5 String)

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

模板字符串


JavaScripit数据类型

原始类型(Primitive Types)

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

1 Undefined

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

特点

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

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

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

实例

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

如图所示

原因

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

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

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

2 Null

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

实例

javascript 复制代码
let y = null;  
console.log(y); // 输出: null

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

3 Boolean

含义:表示逻辑值:truefalse

重点:

在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 语句中使用数字:

java 复制代码
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中的所有数字都是以双精度浮点数形式存储的。

实例

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

特点

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

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

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

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

在这里,n表示 BigInt整数

Number和BigInt 的区别

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

NaN

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

"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> `

模板字符串

应用场景:字符串拼接

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

实例

相关推荐
王俊山IT7 分钟前
C++学习笔记----8、掌握类与对象(三)---- CONSTEXPR与CONSTEVAL
开发语言·c++·笔记·学习
开心工作室_kaic7 分钟前
基于微信小程序的校园失物招领系统的设计与实现(论文+源码)_kaic
c语言·javascript·数据库·vue.js·c#·旅游·actionscript
Small-K8 分钟前
前端框架中@路径别名原理和配置
前端·webpack·typescript·前端框架·vite
bin915312 分钟前
【EXCEL数据处理】000009 案列 EXCEL单元格数字格式。文本型数字格式和常规型数字格式的区别
大数据·前端·数据库·信息可视化·数据分析·excel·数据可视化
山语山30 分钟前
C语言——文件读写操作
java·c语言·前端·microsoft·visual studio
WW、forever32 分钟前
MATLAB工具库:数据统计分析工具MvCAT、MhAST等
开发语言·matlab
u01040583637 分钟前
Java后端开发中的数据保护:如何实现全面的数据加密
java·开发语言
太阳火神的美丽人生1 小时前
Vant WeApp 开启 NPM 遇到的问题总结
前端·npm·node.js
唐 城1 小时前
Debian 配置 Python 开发与运行环境
开发语言·python
lucifer3111 小时前
JavaScript 中的装饰器模式(十一)
javascript·设计模式