序言
JS里的数据转换经常遭人诟病,由于javascript归属于弱类型语言,它对种类的表达并没有强制的限制,这对于我们来说是头痛的。不一样的种类间的计算必须要先对数据的类型开展变换,在日常设计中我们常常会使用。
基本数据类型
引用类型
- Number(数据)
- String(字符串数组)
- Boolean(布尔运算)
- Null
- Undefined
- Symbol(ES6)
引用数据类型
- object{}
- array[]
- function(){}
- date()
因为JS中有着动态类型,在界定的情况下无需特定基本数据类型,取值的时候也可以将随意种类值赋同一个自变量,比如:let a = 1; a = '1'
。
数据转换
什么叫数据转换?
简单的说就是将值从一种数据类型转换为另一种基本数据类型的一个过程。
分为几种?
依据转化的特性分成:显式数据转换(强制转换)和隐式类型转换(全自动变换)。
表明数据转换(强制转换)
根据Boolean()
——原始值转布尔运算,Number()
——原始值转数字,String()
——原始值转标识符去进行强制类型转换。这儿的转换方法能直接查询Js官方文档:Annotated ES5
我们可以从word里就可以知道在我们想开展强制类型转换时,js就会自动会帮助我们应用ToString(value),ToNumber(value)
开展变换。
//原始值转布尔运算
console.log(Boolean('123'));
console.log(Boolean(123));
console.log(Boolean(null));
console.log(Boolean(undefined));
console.log(Boolean(true));
//原始值转数字
console.log(Number('123'));
console.log(Number(123));
console.log(Number(null));
console.log(Number(undefined));
console.log(Number(true));
//原始值转字符串
console.log(String('123'));
console.log(String(123));
console.log(String(null));
console.log(String(undefined));
console.log(String(true));
结果显示:
目标转字符串,数据
根据启用特殊对象转换方式来进行,在js含有2个方式来实行变换,这俩方式每一个目标都具有,是用来把对象转换为原始值的。这俩方式分别是toString(),valueOf()
,这俩方式目标的结构函数原型上就会有,目的是要有方法把对象转换为原始类型。
目标转字符串
toString()方式除开Null和Undefined其它的基本数据类型都具有这种方法。一般来说toString()和String()实际效果一样。
大家在word里重点发展对象转字符串,上图中目标转字符串有两个步骤,起先实行带有的ToPrimitive(obj,String)
,再回到执行结果,分下述两步:
1.分辨obj是否属于基本数据类型,是则回到
2.启用目标带有的toString
方式,如果可以得到一个原始类型,则回到
3.启用目标带有的valueOf
方式,如果可以得到一个原始类型,则回到
4.出错
目标转数字
目标转数字得话也一样是有两个步骤:起先实行带有的ToPrimitive(obj,Number)
,再回到执行结果,分下述两步:
1.分辨obj是否属于基本数据类型,是则回到
2.启用目标带有的valueOf
方式,如果可以得到一个原始类型,则回到
3.启用目标带有的toString
方式,如果可以得到一个原始类型,则回到
4.出错
隐式类型转换
- 当 计算做为一元运算符时,就会自动启用ToNumber()解决该值。(等同于Number())
比如:console.log( '123');
结果显示数据123。
console.log( []);
结果显示0,由于目标[]变换为了能0。
- 当 计算做为二元运算符,例(a b)
1.lprim = ToPrimitive(v1)
2.rprim = ToPrimitive(v2)
3.假如lprim是字符串数组或是rprim是字符串数组,则回到ToString(lprim)和ToStringrprim()的拼凑结论
4.回到ToNumber(lprim) ToNumber(rprim)
结束语
js类型转换方法,等同于历史大事件,已经要求好一点的,搞清楚它,能更好的和招聘者高谈阔论。最终谢谢各位的收看。
本站是一个以CSS、JavaScript、Vue、HTML为中心的前端开发技术网址。我们的使命是为众多前端工程师者提供全方位、全方位、好用的前端工程师专业知识和技术服务。 在网站上,大家可以学到最新前端开发技术,掌握前端工程师最新发布的趋势和良好实践。大家提供大量实例教程和实例,让大家可以快速上手前端工程师的关键技术和程序。 本站还提供了一系列好用的工具软件,帮助你更高效地开展前端工程师工作中。公司提供的一种手段和软件都要经过精心策划和改进,能够帮助你节约时间精力,提高研发效率。 此外,本站还拥有一个有活力的小区,你可以在社区里与其它前端工程师者沟通交流技术性、交流经验、处理问题。我们坚信,街道的能量能够帮助你能够更好地进步与成长。 在网站上,大家可以寻找你需要的一切前端工程师网络资源,使您成为一名更加出色的网页开发者。欢迎你添加我们的大家庭,一起探索前端工程师的无限潜能!