数据转换

转换成字符串类型
1 toString()方法
var num = 18;
var isRight = true;
console.log(typeof num.toString());
console.log(typeof isRight.toString());

错误的方式 null和undefined没有toString()方法
var a = null;
console.log(a.toString());

2 String()方法
var num = 18;
var isRight = true;
console.log(String(num));
console.log(String(isRight));

var a = null;
console.log(typeof String(a));

3 字符串拼接
var num = 18;
var isRight = true;
console.log(typeof(num + ''));
console.log(typeof(isRight + ''));

转换成数值类型

1 Number()
var str = 'abc'; // Number(str) -》 NaN
var isRight = true; // Number(isRight) -> 1

console.log(Number(str));
console.log(Number(isRight));

console.log(Number('123'));
// Number() 把字符串转换成数值类型的时候,如果字符串中有一个字符不是数字,返回NaN
console.log(Number('123abc'));



2 parseInt() // int 整数
var str = '123';
var isRight = false;

console.log(parseInt(str));
// parseInt 无法把布尔类型转换成数值类型 返回的结果是NaN
console.log(parseInt(isRight));


//var s1 = 'abc'; // parseInt(s1) -> NaN
var s1 = '123abc';
// parseInt 在转换字符串的时候,如果遇到数字就会转换数字,如果遇到非数字就会返回
console.log(parseInt(s1));

var s2 = 'abc123'; // 如果字符串中第一个字符是非数字 此时返回NaN
console.log(parseInt(s2));


3 parseFloat()
var str = '123.67';
var isRight = true;
console.log(parseFloat(str));
console.log(parseInt(str)); // 返回123
console.log(parseFloat(isRight)); // parseFloat 无法转换布尔类型 返回的是NaN

var str = '123.12abc';
console.log(parseFloat(str));

var str = '123abc';
console.log(parseFloat(str));


4 取正或者取负 + -
var num = -5;
console.log(num);

var str = '123';
console.log(-str);

var str = '123abc';
console.log(+str);

var isOK = true;
console.log(+isOK);

var str = '123abc';
- 如果一边是数值类型 一边是字符串,会先把字符串转换成数值类型再进行数值的减法运算
如果字符串转换成数值类型失败 此时返回NaN
console.log(str - 0);
+ 如果有一边是数值类型 一边是字符串,会先把数值类型转换成字符串 再进行字符串的拼接
console.log(str + 0);

转换成布尔类型

var str = 'abc';
var num = 123;
var a = null;
var b; // 默认值是undefined

console.log(Boolean(str)); // true
console.log(Boolean(num)); // true
console.log(Boolean(a)); // false
console.log(Boolean(b)); // false

// 转换成false的情况:null undefined ''空字符串 0 NaN

console.log(Boolean(''));
console.log(Boolean(0));
console.log(Boolean(NaN));

console.log(Boolean(-1));

原文地址:https://www.cnblogs.com/pxxdbk/p/12560425.html