js基本类型之间的数据类型转换

js是一门是一种动态类型、弱类型的语言,开发过程中我们可能经常会遇到类型的显式转换与隐式转换,下面我们就来一起看一下转换的一些规则。

1、首先我们要知道雷滢转化的规则就必须知道js的数据都有什么类型,这个比较基础,直接上答案,下面就是js的6种基本类型。
1. 字符串(String)
2. 数字(Number)
3. 布尔(Boolean)
4. 对空(Null)
5. 未定义(Undefined)
6. Symbol

以及引用类型的3种

 7. 对象(Object)
 8. 数组(Array)
 9. 函数(Function)
2、显式数据转化

(1)转字符串

首先我们可以借助原型中的 toString() 方法

//可以用toString()方法
var a = 1;
console.log(a);
console.log(a.toString()); //"1"
var flag = true;
console.log(flag.toString());//"true"
var b = null;
console.log(b.toString());//报错null不能用toString()
var c;
console.log(c.toString());//报错undefined不能用toString()

由于null和undefined本身没有toString方法,所以使用的话会报错;
但是我们可以使用另一种更加强大的方法
String() 强转 啥都能转 但是注意书写它时首字母大写

var b = 1;
console.log(b);//1
console.log(String(b));//'1'
var flag2 = false;
console.log(String(flag2));//'false'
var m = null;
console.log(String(m));//'null'
console.log(String(undefined));//'undexfined'

(2)转数值
Number() 可以解决我们常规场景下的转数值操作;

var a = '123456';
console.log(Number(a));//123456
var b = true;
console.log(Number(b));//1
var c = "1609D";
console.log(Number(c));//NaN
var d = {};
console.log(Number(d));//NaN

在用Number转化的过程中我们会遇到一些特殊的场景,下面一起看一下。
转化数字为0的情况

console.log(Number(null));//0
console.log(Number(false));//0
console.log(Number(""));//0
console.log(Number(" "));//0
console.log(Number("0"));//0
console.log(Number([]));//0

当遇到一些特殊情况,比如我们需要转化的字符串中包含一些不是数字的字符,但我们仍然想将一部分字符转化为数字时,我们还可以用parseInt() ;和parseFloat() 来转化。

//parseInt()
var e = '1234e';
console.log(parseInt(e));//1234
var f = '123.4e';
console.log(parseInt(e));//1234
var g = "d123";
console.log(parseInt(g));//NaN
//将字符转为整数,忽略小数点,遇到不是数字的字符停止,如果首个字符为非数字则转化为NaN
//parseFloat()
var h = "3.1415a";
console.log(parseFloat(h));//3.1415
var i = "3.13.3456";
console.log(parseFloat(i));//3.13
var j = "a3.13.3456";
console.log(parseFloat(j));//NaN
var k = "123";
console.log(parseFloat(k));//123
//不再忽略小数点,遇到不是数字的字符停止,如果首个字符为非数字则转化为NaN

当然我们还可以利用 + (一元加法运算符)来进行转化

var l = '123';
console.log(+l);//123
var m = "123a";
console.log(+m);//NaN
var n = "a123";
console.log(+n);//NaN
var o = true;
console.log(+o);//1

(3)转布尔值
我们可以借助Boolean() 方法
布尔值转化中只有以下几种会转为false

console.log(Boolean(null));//false
console.log(Boolean(undefined));//false
console.log(Boolean(""));//false
console.log(Boolean(false));//false
console.log(Boolean(0));//false
console.log(Boolean(Nan));//false
3、总结

我们在编程中经常会遇到一些显式或隐式的数据转化,只有了解了各种基本类型之间的转化机制和设定,才能在coding时少出BUG,提升开发效率,必要的js基础知识,是我们漫长前端coding道路中最坚实的伙伴。最后欢迎各位小伙伴的指正和补充。

你可能感兴趣的:(javascript)