JavaScript数据类型

目录

JavaScripit数据类型

基本类型(值类型)

1 Undefined

2 Null

3 Number,BigInt

4  Boolean

5 String

引用类型(对象类型)


JavaScripit数据类型

基本类型(值类型)

JavaScript中常见的5种基本类型:

Undefined

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

特点

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

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

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

实例

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

如图所示

23ffefffa61e4c9bbe177e7f6ffc1a6f.png

原因

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

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

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

那么怎样才可以不出现undefined呢?

如下图:使用console.log() 打印 a 的值

2 Null

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

实例

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

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

3 Number,BigInt

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

实例

996367dab4bb46d4bea2bb057eca2a79.png

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

特点

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

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

3b410f881a8b4fcaac0b5fc87d4a8bae.png

3.2  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 是一个用于表示未定义或不可表示数值的特殊浮点数值,在编程中需要特别小心处理。

4  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)

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

引用类型(对象类型)

对象(Object):对象是一组键值对的集合,可以存储任意类型的数据。在JavaScript中,几乎所有事物都是对象,除了基本类型之外。对象可以使用字面量表示法或构造函数来创建。

数组(Array):数组是一种特殊的对象类型,用于存储一组有序的数据。数组中的每个元素都可以是任意类型的数据。数组使用方括号表示,元素之间用逗号分隔。

函数(Function):函数是一组可复用的代码块,用于执行特定的任务。在JavaScript中,函数也是对象,因此它们可以具有属性和方法。函数可以使用函数声明、函数表达式或箭头函数来创建。

之后的博客中,我会详细的介绍对象类型的知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值