java script-数据类型转换&&运算符

一、数据类型的转换方法:

1)强制转换:

1.字符转数值:

parseInt(要转换的数据或变量)

·规则:

从左向右依次检测,遇到第一个非数字的字符,停止转换;

忽略小数点后所有的内容,其实是将小数点识别成了非数字;

如果第一位就是非数字,直接NaN

parseFloat(要转换的数据或变量)

·规则:

从左向右依次检测,遇到第一个非数字的字符,停止转换;

可以识别小数点;

如果第一位就是非数字,直接NaN

Math.round(要转换的数据或变量)

·规则:

Math.round不是专门做字符转数值的

专门做取整的,取最近的整数,顺带着给可以实现转换

严格转换:只要出现非数字,那么就是NaN;

Number(要转换的数据或变量)

·规则:

Number不是专门做字符转数值的

系统内置的构造函数,用来创建数值对象,后话...顺带着给可以实现转换,直接转换;

严格转换:只要出现非数字,那么就是NaN;

2.数值转字符:

①数值变量.toString()

·规则:直接转换,相当于加个引号;

②数值变量.toFixed(n)

·规则:保留n为小数。

3.其他转布尔:

·数值转布尔:非0为true,0为false;

·字符转布尔:非""为true,""为false;

·数组、函数和对象转布尔都为true;

·undefined、NaN、null转布尔都为false;

4.三大特殊数据:undefined,null,NaN

1.NaN:非法的数值运算得到的结果

1)特点:

①是一个数值型的数据,但是不是一个数字;

② NaN不等于任何值,和任何数据都不相等,NaN不等于NaN。

2.undefined是:未赋值,类型是undefined;null是:空,类型是object

1)特点:

①undefined和null在关系运算符两边隐式类型转换后,得到了一致的数据;

②undefined被Number转成NaN,null被Number转成0。

3.判断三大特殊的值的方法:

1)NaN可以使用isNaN()来判断:

①方法:isNaN(要判断的值或变量);

②案例:var a = NaN;

         console.log(isNaN(a)); // 结果是布尔值:true为是的,false为不是。

2)undefined`可以使用`typeof`判断:

①方法:typeof 要判断的值或变量;

②案例:var b = undefined;

         console.log( (typeof b) === "undefined" );// 结果是布尔值:true为是,false为不是;

3)null需要配合typeof和关系运算符判断:

①方法:typeof 要判断的值或变量 === "object"&&要判断的值或变量 == null

②案例:var c = null;

    console.log( (typeof c) === "object" );

    console.log(c === null);

2)隐式转换:

1.情景和规则:

①算数运算:

·`+`号两边只要出现字符,结果必然为字符;

·`-``*``/``%`的结果必然是数值(严格类型转换)。

②关系运算:

·`>``<``>=``<=``!=``==`两边只要出现数值,那么另一边也会转成数值,进行比较。(严格类型转换)

二、数据的运算符:

1)算数运算符

`+` 加号,加法

  · 当加号两边都是数值型数据时,是数学的加法运算;

  ·任意一边是字符,那么就变成了拼接,拼接就是将两个数据,直接组合起来;

-`-``*``/``%`

  ·就是正常的数学运算;

  ·就算两边不是数值,也会默认转成数值,进行运算;

  ·如果某个数据不能转成数值,会得到`NaN`

2)关系运算符的结果是布尔值:

`>``<``>=``<=`

·只要有一边出现数值,都是数值的**比较规则**

·如果都是字符,才是字符的**比较规则****逐位比较**,得到结果,就停止

`!=``==`

·会发生隐式类型转换,或者只比较大小,不比较类型

`!==``===`

·不会发生隐式类型转换,不仅比较大小,还比较类型

3)逻辑运算符:主要操作布尔值

①或(||)

基础规则:两边只要出现true,结果就是true,必须都为false,结果才是false

原理:

  如果左侧是true,那么就确定 或 的结果了,不再向右检测;

     如果左侧是false,不能确定结果,需要继续向右检测,不管右侧是啥,结果都停在右侧了。

②且(&&)

基础规则:两边只要出现false,结果就是false,必须都为true,结果才是true

原理:

  如果左侧是false,那么就确定 且 的结果了,不再向右检测;

  如果左侧是true,不能确定结果,需要继续向右检测,不管右侧是啥,结果都停在右侧了。

③非(!)

基础规则:取反;

作用:灵活利用非,实现其他转布尔。

补:所有的隐式类型转换,仅仅发生在该数据被使用时,该数据还是原本的内容

4)赋值运算符:

① “=

·将等号右侧的数据,存在左侧的变量中

·把右边的内容,放在左边的变量中

·如果左侧的变量,原本有值,那么会覆盖

②“+=,-=,*=,/=,%=

·先计算,再赋值(覆盖)

5)一元运算符:

①自增: “++增加1

补:前后之分

·前自增`++n`:先计算,后使用;

·后自增`n++`:先使用,后计算;

②自减:“--减少1

补:前后之分

·前自减`--n`:先计算,后使用;

·后自减`n--`:先使用,后计算。

原文地址:https://www.cnblogs.com/yh-3175339026/p/12747478.html