javascript学习笔记(六)数据类型和JSON格式


Posted in Javascript onOctober 08, 2014

什么是JSON

JSON:JavaScript 对象表示法(JavaScript Object Notation)。

JSON的形式是用大括号“{}”包围起来的项目列表,每一个项目间用逗号(,)分隔,而项目就是用冒号(:)分隔的属性名和属性值。这是典型的字典表示形式,也再次表明javascript里的对象就是字典结构。不管多么复杂的对象,都可以用一句JSON代码来创建并赋值。

JSON 结构

JSON有两种结构

json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构

1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。

2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
经过对象、数组2种结构就可以组合成复杂的数据结构了。

JSON 语法规则

JSON 语法是 JavaScript 对象表示法语法的子集。

数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
JSON 值可以是:

数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null

1) 并列的数据之间用逗号(", ")分隔。

2) 映射用冒号(": ")表示。

3) 并列数据的集合(数组)用方括号("[]")表示。

4) 映射的集合(对象)用大括号("{}")表示。
JSON例子

创建没有任何属性的对象:

var obj = {};

创建一个对象并设置属性和初始值:

var author = {name : "trigkit4",age : 21 , sex : "male"};

创建一个对象并设置属性和方法:

var hello ={content:"how are you?" , say :function(){alert(this.content)} };

创建一个嵌套其他对象和对象数组等:

var company = {name:"Apple",

               product:"iPPhone",

               chairman:{name:"Tim Cook",age:54},

               employees:[{name:"Jony Ive",age:47},{name:"Lili",age:29}], 

 };

对象是一套无序的名/值对,一个对象以左边分支开始,以右边分支结束

一个值可以是用双引号括起来的字符串,或者是一个数值,一个true or false ,一个数组或者一个对象

数据类型:

从结构上看,所有的数据(data)最终都可以分解成三种类型:

第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词。

第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如"北京,上海"。

第三种类型是映射(mapping),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作散列(hash)或字典(dictionary),比如"首都:北京"。
在编程语言中,只要有了数组(array)和对象(object)就能够储存一切数据了。

数组和对象的另一个区别是,数组的数据没有"名称"(name),对象的数据有"名称"(name)。

JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。

对一个值使用typeof操作符可能返回下列某个字符串:

● "undefined"——如果这个值未定义;

● "boolean"——如果这个值是布尔值;

● "string"——如果这个值是字符串;

● "number"——如果这个值是数值;

● "object"——如果这个值是对象或null;

● "function"——如果这个值是函数;

Undefined类型:

    `Undefined`类型只有一个值,在使用var声明变量但未对其加以初始化时,
这个变量的值就是undefined
Null类型

Null类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null时会返回"object"的原因,例如:

var car = null;

alert(typeof car); // "object"

Number类型

这种类型用来表示整数和浮点数值,还有一种特殊的数值,即NaN(非数值 Not a Number)。这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。

String类型

String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由单引号(')或双引号(")表示。
数值、布尔值、对象和字符串值都有toString()方法。但null和undefined值没有这个方法。

多数情况下,调用toString()方法不必传递参数。但是,在调用数值的toString()方法时,可以传递一个参数:输出数值的基数。

var num = 10;

alert(num.toString());      //"10"

alert(num.toString(2));     //"1010"

alert(num.toString(8));     //"12"

alert(num.toString(10));    //"10"

alert(num.toString(16));    //"a"

在不知道要转换的值是不是null或undefined的情况下,还可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串。String()函数遵循下列转换规则:

● 如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果

● 如果值是null,则返回"null"

● 如果值是undefined,则返回"undefined"

Object类型

对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。而创建Object类型的实例并为其添加属性和(或)方法,就可以创建自定义对象。

var o = new Object();
typeof 操作符

<script type="text/javascript">

    var s = "Nicholas";

    var b =true;

    var c = 21;

    var u;

    var n = null;

    var o = {};

    var obj = new Object;//最好写出new object()形式
    alert(typeof s);//string

    alert(typeof b);//boolean

    alert(typeof c);//number

    alert(typeof u);//undefined

    alert(typeof n);//object

    alert(typeof o);//object

    alert(typeof obj);//object

</script>

Json在线解析

Json在线解析:http://json.tongxiehui.net/

Javascript 相关文章推荐
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
Apr 01 Javascript
jquery的$(document).ready()和onload的加载顺序
May 26 Javascript
style、 currentStyle、 runtimeStyle区别分析
Aug 01 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
Mar 18 Javascript
javascript实现复制与粘贴操作实例
Oct 16 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
Jun 04 Javascript
javascript的列表切换【实现代码】
May 03 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
Mar 01 Javascript
基于vue 动态加载图片src的解决方法
Feb 05 Javascript
Webpack中publicPath路径问题详解
May 03 Javascript
基于Vue中的父子传值问题解决
Jul 27 Javascript
浅谈Web Storage API的使用
Jun 23 Javascript
javascript学习笔记(五)原型和原型链详解
Oct 08 #Javascript
JavaScript中获取高度和宽度函数总结
Oct 08 #Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
Oct 08 #Javascript
JavaScript中获取样式的原生方法小结
Oct 08 #Javascript
吐槽一下我所了解的Node.js
Oct 08 #Javascript
Node.js 的异步 IO 性能探讨
Oct 08 #Javascript
JS中的form.submit()不能提交表单的错误原因
Oct 08 #Javascript
You might like
MVC模式的PHP实现
2006/10/09 PHP
PHP与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
php adodb连接mssql解决乱码问题
2009/06/12 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
js调用flash的效果代码
2008/04/26 Javascript
Document对象内容集合(比较全)
2010/09/06 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
原生JS实现音乐播放器的示例代码
2021/02/25 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
Python用模块pytz来转换时区
2016/08/19 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
Canvas 文字碰撞检测并抽稀的方法
2019/05/27 HTML / CSS
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
Steiff台湾官网:德国金耳釦泰迪熊
2019/12/26 全球购物
酒店总经理工作职责
2013/12/13 职场文书
迟到检讨书1000字
2014/01/15 职场文书
通用自荐信范文
2014/03/14 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
Ajax实现三级联动效果
2021/10/05 Javascript
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers