javascript中类型装换

javascript中类型转换

javascript是一种弱类型的语言,变量和类型无关,所以有时需要我们进行类型转换

一、数字型转换(number)

两种方法:

number: 类型转化走的是v8引擎最底层机制的转化规则
parseFloat、parseInt:是提供额外的方法转化规则

number

先将引用类型转化为字符串(tostring)方法,在把字符串转化为数字

字符串 => 数字:非有效数字转化为字符串
布尔值 => 数字 :1或0
null => 数字 : 0;
underfined => 数字 :NaN,
‘ ’ => 数字 :0
对象 => 数字:先把对象转化成为字符串,在转化成为数字
【】 => 数字 :0

Number(10); // 10 
Number('10'); // 10 
Number(null); // 0
Number(''); // 0
Number(true); // 1 
Number(false); // 0
Number([]); //
0 Number([1,2]); // NaN
Number('10a'); // NaN 
Number(undefined); // NaN

parseint() parsefloat(【va】,【进制】),对字符串从左到右依次查找有效的数字字符,知道遇到非有效字符串,停止查找,把找到的当做数字返回,

如果不是字符串,先转化为字符串在使用此方法

let str = '12.5px' 
parseInt(str) // 12 
parseFloat(str)// 12.5
parseFloat(true)// NaN

isNaN判断数字类型:

如果当前类型为数字类型,返回false,否则返回true

二、字符串类型转换(string)

原始类型,使用tostring方法()就是之前是什么样子 在外层包一层引号

数字 => 字符串:包裹一层引号。
NaN => 字符串: 'NaN' 。 
true => 字符串: 'true' 。 
null => 字符串: 'null' (浏览器会报错(禁止你使用)—— 通常可以进行转换)
undefined => 字符串:'undefined' (浏览器会报错(禁止你使用)—— 通常可以进行转换)
Object => 字符串: '[object,Object]' 。

普通对象转化的结果为 “ [object,object] ”,因为Object.prototype.toString 方法不是转化为字符串的,而是用来检测数据类型的。

String(123); // "123" 
String(true); // "true" 
String(null); // "null"(报错) String(undefined);// "undefined"(报错) String([1,2,3]) // "1,2,3" 
String({}); // "[object Object]"

三、布尔类型转换(boolean)

1:‘ ’,

2:underfined,

3:NaN,

4:null,

5:false,

6: 0 ,

上面6个值在转换成为布尔值的时候为false,其他类型都是true

Boolean('') // false
Boolean(undefined) // false
Boolean(null) // false
Boolean(NaN) // false
Boolean(false) // false
Boolean(0) // false 
Boolean({}) // true
Boolean([]) // true

四、原始类型的转换

转化原始类型分为两种情况:转化为字符串类型其他原始类型

如果已经是原始类型,不需要再进行转化。

如果转字符串类型,就调用内置函数中的 toString() 方法。

如果是其他基本类型,则调用内置函数中的 valueOf() 方法。

如果返回的不是原始类型,则会继续调用 toString() 方法。

如果还没有返回原始类型,则报错。

猜你喜欢

转载自blog.csdn.net/weixin_44865458/article/details/114399781
今日推荐