不积跬步,无以至千里。

我的学习笔记

首页

原生js

基础语法

内容更新于: 2022-06-20 09:58:24

js 中的一些转化问题

前言:本文主要记录了在js中的一些类型转换(显示转换、隐式转换)。比如if的相等和全等、Number函数转化规则。

if条件 == 比较

1.类型相同做恒等(===)比较
2.类型不同:
2-1.null和undefined:true
2-2.数值和字符串:将字符串转为number进行比较
2-3.如果任意一值为true将它转为1后再进行比较
2-4.如果任意一值为false将它转为0再进行比较
2-5.如果一值是对象另一值是数值或字符串,将对象转为基础类型再进行比较。

Number函数转化规则如下:

1.如果是Boolean值,true和false将分别转为1和0
2.如果是数字值,只是简单的传入和返回
3.如果是null值 返回0
4.如果是undefined返回NaN
5.如果是字符串,遵循下列规则
如果字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,即“1”变成1,“123”会变成123,而“011”会变成11(前导的零被忽略了); 如果字符串中包含有效的浮点格式,如“1.1”,则将其转换为对应的浮点数值(同样也会忽略前导零); 如果字符串中包含有效的十六进制格式,例如"0xf",则将其他转换为相同大小的十进制整数值; 如果字符串是空的(不包含任何字符),则将其转换为0; 如果字符串中包含除上述格式之外的字符,则将其他转换成NaN.
6.如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN(或者仍然不匹配前五条规则),则调用的对象的toString()方法,然后再次依照前面的规则转换返回的字符串值。

本文结束