js数据类型中的小知识

mac2025-04-26  9

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,而是得到一个NaNInfinity 与其他任何操作数执行任何算术运算结果也都为 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 ]

 

 

最新回复(0)