这几天忙着做一个小项目,里面涉及到了很多web前端的知识,由于之前一直是用java,对于js这种脚本语言用起来很不习惯(JavaScript是弱类型的语言),现在对JavaScript的一些知识点做一下总结。
JavaScript的数据类型有:
字符串、数字、布尔、数组、对象、Null、Undefined。
为什么说用JavaScript不习惯呢,因为在java中所有的对象都是拥有自己的数据类型的,java是不支持强制转化数据(比如把String直接赋值给int是不允许的)这样做的好处就是程序的可读性强,维护起来比较方便,但是JavaScript不同,它是支持数据的强制转化的,示例如下:
var int = 1;
var str = "20";
alert(typeof str);//type:string
alert(typeof int);//type:number
str = int;
alert(typeof str);//type:number
JavaScript的基本数据类型和java很相似,不过这边要注意了在JavaScript中其实也是一切都是对象,比如数组类型就是一个object,数组这个JavaScript很有意思,因为它可以存放任何JavaScript数据,所以它的格式是:[JsObject,JsObject,......],而JavaScript的数组和JSON有很多相似之处。
因为JavaScript中一切皆对象,其格式为:{"key":JsObject,"key":JsObject,....},如果你想要一个JSON数组,很显然它必须遵循JavaScript数组的定义格式即:[$OBJ,$OBJ,...]
($OBJ = {"key":JsObject,"key":JsObject,....})
其实这里会发现一个有趣的现象,我们完全可以把 "key":JsObject 这个表达式理解成一个对象,而JSON数据就是这种格式类型的数组,而JSON数组就是其表达式的二维数组。
PS: 这里我要特别声明一下,JsObject是JavaScript的数据类型,一开始的时候我一直以为JSON数据的格式是{"key":"value"}这种类似于Map中键值对的格式。其实JSON是非常灵活的,也就是说你的JSON数据完全可以这么去写
{"name":"Mr.J.","age":23,"skill":["run","head","hit"],"data":[12,21,43],"obj":{"objName":"objName","objAge":10}},你可以在里面放任何你想放入的数据。