目录
JavaScripit数据类型
基本类型(值类型)
JavaScript中常见的5种基本类型:
1 Undefined
含义:我的理解是:变量/表达式/函数,没有提供给调用者有用的结果
特点
1 声明变量时,没有赋初值
2 使用创建的数组,对象中不存在的属性值
3 函数或表达式没有返回结果
实例
如果按照特点理解:声明变量未赋值,会出现undefine。但如果已经赋值了,为什么还会存在undefined?
如图所示
原因
在浏览器控制台中输入 let
a = 10
后,控制台显示undefined
的原因与 JavaScript 的执行和返回值机制有关。当你输入一个声明语句(如
let a = 10
)时,这个语句的主要作用是声明一个变量a
并给它赋值为10
。然而,这个语句本身并不产生任何可以返回给调用者的值。在 JavaScript 中,如果一个语句没有明确的返回值,那么它的执行结果默认是undefined
。在浏览器控制台中,当你输入一个表达式或语句并按下回车键时,控制台会尝试显示这个表达式或语句的返回值。对于声明语句(如
let
、const
、var
以及函数声明等),它们的主要目的是定义变量或函数,而不是返回一个值。因此,当控制台执行这些语句时,它会显示undefined
,表示这个语句没有返回任何有用的值。那么怎样才可以不出现undefined呢?
如下图:使用console.log() 打印 a 的值
2 Null
含义:表示空值或不存在的对象。null
是一个表示“无”的特殊关键字,并且是JavaScript中的字面量。
实例
let y = null;
console.log(y); // 输出: null
特点:一般是人为的添加null
3 Number,BigInt
3.1 Number:表示整数和浮点数。JavaScript中的所有数字都是以双精度浮点数形式存储的。
实例
如图根据返回的结果,在控制台 10表示的为浮点数,在Java中通常是用double表示,不再是我们理解的int 整型。
特点
在JavaScript中所有的整数都是浮点数的方式存储的,被使用的
使用Number实际运算过程的实例
3.2 BigInt:表示任意精度的整数。BigInt
类型在ES11(ECMAScript 2020)中引入,用于表示大于 Number
类型能表示的最大值的整数。
如果我们要在JavaScript中使用整数可以在 原本的整数后面添加 n ,表示
在这里,n表示 BigInt整数
Number和BigInt 的区别
精度不同:我们知道 在JavaScript中所有的数字最终都表示浮点型,但在运算中会造成精度缺失
NaN
如图所示:当字符串英文转换成整数失败
"NaN" 是 "Not a Number" 的缩写,在计算机科学和编程中,它表示一个未定义或不可表示的数值。NaN 通常出现在数学运算中,尤其是当运算的结果超出了数值类型的表示范围,或者当运算本身没有数学意义时(例如,0 除以 0)。
在大多数编程语言中,NaN 是一个特殊的浮点数值,用于表示那些未定义或无法表示的运算结果。NaN 具有一些独特的性质,例如:
任何涉及 NaN 的运算结果仍然是 NaN。例如,如果 a 是 NaN,那么 a + 1、a - 1、a * 2 或 a / 2 都将是 NaN。
NaN 不等于任何值,包括它自身。这意味着你不能通过简单的比较操作来检测一个值是否是 NaN。相反,你需要使用特定的函数或方法来判断。
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
语句会评估括号内的表达式,并根据该表达式的布尔值(true
或false
)来决定是否执行if
语句块中的代码。在 Java 中,任何可以转换为布尔值的表达式都可以用作
if
语句的条件。这包括:
布尔字面量:
true
和false
。关系运算符的结果:
==
、!=
、>
、<
、>=
、<=
。逻辑运算符的结果:
&&
(逻辑与)、||
(逻辑或)、!
(逻辑非)。某些特定方法调用的返回值,这些方法返回
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> `
模板字符串
应用场景:字符串拼接
特点:模板字符串用反引号表示
实例
引用类型(对象类型)
对象(Object):对象是一组键值对的集合,可以存储任意类型的数据。在JavaScript中,几乎所有事物都是对象,除了基本类型之外。对象可以使用字面量表示法或构造函数来创建。
数组(Array):数组是一种特殊的对象类型,用于存储一组有序的数据。数组中的每个元素都可以是任意类型的数据。数组使用方括号表示,元素之间用逗号分隔。
函数(Function):函数是一组可复用的代码块,用于执行特定的任务。在JavaScript中,函数也是对象,因此它们可以具有属性和方法。函数可以使用函数声明、函数表达式或箭头函数来创建。
之后的博客中,我会详细的介绍对象类型的知识