JS基本类型和一些关键字操作细节

本文详细介绍了JavaScript中的五种基本类型:数字、字符、布尔值、undefined及null,并深入探讨了这些类型的特点及其在运算中的表现形式,同时对比了基本类型与非基本类型的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JS中的基本类型有哪些?

JS中有5种基本类型:数字、字符、布尔值、undefined、null。除了基本类型之外,其他的都是非基本类型(对象类型:object)

null 和 undefined的一些细节

当我们试图访问一个不存在的变量或者一个未初始化的变量时,就会得到一个特殊的值:undefined。Javascript会自动在变量初始化之前自动将值设置为null。而所谓的null值,一般是指没有值、空值,不代表任何东西,null与undefined最大的不同在于,被赋值的null通常被认为是已定义的变量,只不过它不代表任何东西。

var temp; typeof temp   ------>  "undefined"

null与它是完全另外一回事,它不会自动赋值:

var temp = null; typeof temp   ------>  "object"

这是因为null和undefined在转换成其他的类型时,方法上存在一定的差别,下面列出一些可能的类型转换:

var i = 1 + undefined ;   ------>  NaN
var i = 1 + null ;   ------>  1

1 * undefined;   ------>  NaN
1 * null ;   ------>  0

!!undefined ;   ------>  false;
!!null ;   ------>  false

"" + null ;   ------>  "null"
"" + undefined ;   ------>  "undefined"

typeof操作细节

如果我们想看某个变量或者数值的类型,可以使用特殊字符typeof,该操作符会返回一个数据类型的字符串,它的值包括:
“number”、”string”、”boolean”、“undefined”、”object”和“function”

NaN操作细节

NaN ,尽管这个字符看起来有点特殊,但事实上它属于数字,不过是一种特殊的数字罢了。

typeof NaN ;  ------>  "number"

如果我们在对一个假定的数字执行某个数字操作失败时,就会得到一个NaN。例如:当我们试图将10与 f相乘时其结果就会是NaN

10 * f ;   ------>  NaN

而且,NaN是具有传染性的,只要我们算术运算符中存在一个NaN,整个运算都会失败

1 + 2 + NaN ;    ------>  NaN

结合typeof和undefined判断一个变量是否存在

if(typeof temp != "undefined"){
}

boolean操作细节

boolean ,使用双重取反操作很容易将任何值转换成对应的boolean值,例如:

var temp = "temp" ; 
!!temp ; 
------>  true

除了以下几种特殊的值在转换成boolean值时会得到false,其余大部分值在转换成boolean时都是得到true:

null
undefined
空字符串 ""
数字 0
数字 NaN
布尔值 false

惰性求值,就是短路原则。这里需要注意的是:在js中,如果一个逻辑表达式遇到一个非boolean类型的操作数,那么该操作数的值就会成为该表达式的返回结果

true || "temp" ;    ------>  true
true && "temp" ;    ------>  "temp"
false || "temp" ;    ------>  "temp"

但是这种情况有时候也不安全,比如 :

var temp = 0 ;
temp = temp || 10 ;
------>  10

如果temp 为上面6个值得一个,结果有时候会不如愿。

比较运算符 ==与=== (!= 与 !== )

  • 运算符 == , 在比较操作执行之前,两边的操作数会自动转换成相同的类型。
  • 运算符 === , 这种比较更可靠,因为它不存在类型自动转换。

例如:

1 == '1' ;   ------>  true
1 === '1' ;   ------>  false

运算符 != 与 !== 和 == 与=== 类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值