js是一门弱类型的语言,但是在使用过程中,经常要用到,对象,字符串,数组等数据类型。这里我们不讲数字类型了,现在前后端分离的天下,后端取的数据五花八门,有时候因为数据类型的问题,莫名的BUG,我们常用的,对象字符串相互转换,数组对象相互转换等,往往焦头烂额,这里我们不得不介绍一下TypeScript了,它是js的一个超集,微软主导的一个项目,主要是类型批注和编译时类型检查,这大大降低了因为数据类型而产生的问题,感兴趣可以去看一下官方文档,你的代码可能要多写很多行不过。




iOS 数组转数组字符串 数组如何转为字符串_相互转换


我们先说说js中的字符串字符串主要是用于存储和操作文本。我们可以这样定义一个字符串

var carname = String()var carname = "porsche"   //也可以直接设置内容

字符串有固定的属性和方法。我们简单讲一下,

例如carname.length这样是获取字符串的长度,另外还有constructor,prototype等。

字符串的方法,常见的有indexOf,charAt,match,replace()等等,就不详细介绍了。

什么是对象,下边我们用汽车来做举例。


iOS 数组转数组字符串 数组如何转为字符串_数组转为字符串_02


在真实生活中,汽车是一个对象

汽车有诸如车重和颜色等属性,也有诸如启动和停止的方法

var car = new Object()

这样就创建了一个汽车对象了.

我们给汽车定义属性,例如

var car.name = porschevar car.model = 911

我们也可以为汽车定义方法,例如

var car.start()var car.stop()


iOS 数组转数组字符串 数组如何转为字符串_字符串_03


什么是数组,跟字符串,对象有什么区别,数组跟字符串不同的地方在于,可以存放一个以上的值,相当于升级版的字符串,又不同于字符串,我们还是用汽车举例,当我们三种品牌的车可以用变量来表示,当我们有300种的时候,就很麻烦了,这时候就需要用到数组,来快速存储和遍历数据,在有一点数组也是对象的一种,我们用typeof测试,返回的数据类型都是object

console.log(typeof this.person)

数组使用数字来访问其“元素”。在本例中,person[0] 返回 Bill:

var person = ["Bill", "Gates", 62];

对象使用名称来访问其“成员”。在本例中,person.firstName 返回 Bill:

var person = {firstName:"Bill", lastName:"Doe", age:46};

为了解决这个问题,ECMAScript 5 定义了新方法 Array.isArray(),我们通过返回的是true还是false就可以正确判断是否为数组了。数组算是对象的儿子辈,而跟字符串是亲戚关系。


iOS 数组转数组字符串 数组如何转为字符串_数组_04


总结一下,家族关系 数组是特殊类型的对象,而数组中可以保存对象,函数,字符串,数字等。

对象和数组中包含着字符串和数字。他们之间也可以相互转换

字符串和对象可以相互转换,JSON.stringify() JSON.parse()

数组想要转换成对象,往往需要使用.map等遍历一下。

将对象转为数组,我们往往采用for循环结合arr.push的方式来使用。