js数据类型中的小知识

本文解析了JavaScript中控制台输出undefined的原因,详细对比了a++与++a的操作符区别,阐述了Infinity与NaN的特性,以及如何进行字符串与数字的转换,并介绍了惰性求值和delete操作符的使用。

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

1.为什么某个表达式在控制台的输出结果为undefined?

控制台在执行完我们输入的表达式之后,总是要输出该表达式的运行结果,但是有一些表达式(例如:var  a  =  1)是没有任何返回值的,在这种情况下,控制台就会隐式的打印一个undefined。

2. a++和++a的区别:

后置的++操作会先返回该值,然后再增1

let a=123;
let b=a++;

b  //123
a  //124

前置的++会先将该值增1,然后再返回

let a=123;
let b=++a;

a   //124
b   //124

3.Infinity相关:

  • 任何正数除以0的结果都为 Infinity
  • 正负 Infinity相加我们也不会得到0,而是得到一个NaN
  • Infinity 与其他任何操作数执行任何算术运算结果也都为 Infinity

4.NaN

NaN依然属于数字类型,只不过是一种特殊的数字罢了。

NaN不等于任何东西,包括它自己。

typeof NaN   //"number"

NaN是有传染性的,只要我们的算术运算中存在一个NaN,整个运算就会失败。

5. 字符串、数字转换的简易方法:(利用了js的隐式转换)

//数字字符串转换为数字
let s="100";
s=s*1;


//其他类型转换为字符串
let n=1;
n=n+'';

常用特殊字符串:

  • \        转义符
  • \n      换行符
  • \r       回车符

6.惰性求值:

如果在一个连续的逻辑操作中,操作结果在最后一个操作完成之前就已经明确了的话,那么该操作往往就不必再继续执行了,因为这已经不会对最终结果产生任何影响了。

true || false || true || false || true ;

上述例子中,只要其中任何一个操作数为true,该表达式的结果就为true。因而当第一个操作数被求值之后,无论后面的值是什么,结果都已经确定了。javascript引擎在不影响最终结果的情况下省略了一些不必要的求值操作。

7.delete操作符:

使用delete操作符删除数组中的元素,删除值将使用undefined代替,数组长度不变。

let arr = [ 1 , 2 ,3 ];
delete arr[1];

arr   //[ 1 , 'undefined' , 3 ]

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值