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

什么是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/

(0)

相关推荐

  • 通过JS判断联网类型和连接状态的实现代码

    中国的移动网络环境复杂,为了给用户带去更好访问体验,开发者希望能了解用户当前的联网方式,然后给用户一个符合当前网络环境的请求结果. W3C的规范中给出了一个方法来获得现在的网络状态navigator.connection:根据Working Draft 29 November 2012协议规范我们可以从接口中获得bandwidth(带宽,M/s)和metered两个参数的值:还提供了一个监听方法,来时刻监听接入环境的变化情况.现实中我们发现很多浏览器并没有返回bandwidth值,而且遵守了Wo

  • js判断当前浏览器类型,判断IE浏览器方法

    最短IE判断方法,原文地址: http://www.jb51.net/article/23621.htm 判断IE浏览器最短方法:var isIE = !-[1,] 原理:[1,]在标准浏览器中返回"1",相当于调用[1,].toString(),在IE中返回"1,"在这个时候对返回值使用负号强制转换为数字时,标准浏览器返回1,IE则返回NaN,再对1和NaN取反时,标准浏览器返回false,IE返回true. js判断浏览器类型 原文基本上没有什么问题,但他的判断

  • js用typeof方法判断undefined类型

    js判断undefined类型 if (reValue== undefined) { alert("undefined"); } 发现判断不出来,最后查了下资料要用typeof方法: if (typeof(reValue) == "undefined") { alert("undefined"); } typeof 返回的是字符串,有六种可能:"number"."string"."boolean&

  • js判断游览器类型及版本号的代码

    phpnew blog内置discuz ubb类型的编辑器, 编辑器功能上有在光标处插入, 可在ie11上一直不准确. 今天分析一下, 终于找到原因. 旧版本的js文件写的浏览器判断有异常, 所以导致插入点一直在头部. 今天修复之. 提供一个js函数. 返回一个数组. 复制代码 代码如下: function sys_userAgent(){     var userAgent = navigator.userAgent,         rMsie = /(msie\s|trident.*rv:

  • js判断undefined类型示例代码

    复制代码 代码如下: if (reValue== undefined){ alert("undefined"); } 发现判断不出来,最后查了下资料要用typeof方法: if (typeof(reValue) == "undefined") { alert("undefined"); } typeof 返回的是字符串,有六种可能:"number"."string"."boolean".

  • js 正则表达式 验证 a/b/c 格式的类型数据

    首先说下 我的需求 我要对一个文本框中输入的内容格式做出要求 内容 必须是 "字符串" "字符串"+"/"+"字符串" "字符串"+"/"+"字符串"+"/"+"字符串" "字符串"+"/"+"字符串"+"/"+"字符串"+&qu

  • js判断上传文件类型判断FileUpload文件类型代码

    asp.net中html标签代码: 复制代码 代码如下: <asp:FileUpload ID="fuMain" runat="server" /> <asp:Button ID="btnUpload" runat="server" OnClientClick="return CheckWorkFile()" Text="上传" /> 普通的html标签: 复制代

  • js表格排序实例分析(支持int,float,date,string四种数据类型)

    本文实例讲述了js表格排序的方法.分享给大家供大家参考.具体如下: <html> <head> <title>SortTable2</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript"> var k=0; /**//*

  • js控制文本框输入的字符类型方法汇总

    JS 控制文本框只能输入数字 复制代码 代码如下: <input onkeyup="value=value.replace(/[^0-9]/g,'')" onpaste="value=value.replace(/[^0-9]/g,'')" oncontextmenu ="value=value.replace(/[^0-9]/g,'')"> JS 控制文本框只能输入数字.小数点 复制代码 代码如下: <input onkeyu

  • js 判断文件类型并控制表单提交示例代码

    下面的代码 实现的控制表单提交 复制代码 代码如下: function shangchuan(){ var filepath = document.getElementById("file").value; alert(filepath); if(filepath==""){ alert("请选择上传的文件!"); document.getElementById("file").disabled=true; } var ext

  • js/jquery判断浏览器类型的方法小结

    JS获取浏览器信息 复制代码 代码如下: 浏览器代码名称:navigator.appCodeName 浏览器名称:navigator.appName 浏览器版本号:navigator.appVersion 对Java的支持:navigator.javaEnabled() MIME类型(数组):navigator.mimeTypes 系统平台:navigator.platform 插件(数组):navigator.plugins 用户代理:navigator.userAgent js判断IE浏览器

  • JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)

    随着移动互联网的不断普及,企业的网络宣传不仅只局限在PC端,还要在移动端发展.我们在自己的网站做了WAP手机完整之后,如果有用户通过手机访问我们的企业顶级域名网站,就要判断跳转到专为的WAP网站,下面小编通过两种方式介绍根据手机浏览器类型跳转WAP手机网站,具体内容如下. 第一种方式:直接JS脚本 <script type="text/javascript"> try { var urlhash = window.location.hash; if (!urlhash.ma

  • js判断浏览器类型及设备(移动页面开发)

    下面主要用javascript代码来判断浏览器类型及设备访问该网页面,支持手机上的所有浏览器,具体代码如下. <!DOCTYPE html> <html> <head> <title>JS判断是什么设备是什么浏览器-www.jb51.net</title> <meta charset="utf-8"> <meta name="apple-touch-fullscreen" content=

  • js数值计算时使用parseInt进行数据类型转换(jquery)

    js获取到的数据默认都是string字符串类型的,如果进行数值的运算必须使用parseInt进行转换成数值的操作. html代码: 复制代码 代码如下: <div id="archive">     <input type="hidden" name="page" value="1" /> </div> js代码: 复制代码 代码如下: $("#archive").bin

  • node.js解决获取图片真实文件类型的问题

    遇到一个需求:假定有一个图片文件,真实的类型为jpg,而有人偷懒把jpg直接复制一张,存为同名的png文件,这样在as3读取文件时不会遇到问题,但手机c++在读取文件时却遇到问题了 - -! 现在就需要写一个程序,遍历所有文件夹下的文件,查找文件格式"不正常"的文件.我们的资源主要是gif.png.jpg,最开始,我到网上找到一篇文章:根据二进制流及文件头获取文件类型mime-type,然后读取文件二进制的头信息,获取其真实的文件类型,对与通过后缀名获得的文件类型进行比较. 复制代码

  • JavaScript判断FileUpload控件上传文件类型

    为了代码变得更加简捷,笔者使用了正则表达式来获取文件扩展名,如果读者对正则表达式不太了解或者从来没有接触过,请马上恶补一下吧!毕竟它非常重要,大多数的编程语言都支持正则表达式. 大家都知道,后台获取FileUpload扩展名方法: string ext = Path.GetExtension(fu.PostedFile.FileName); JS判断FileUpload控件上传文件的扩展名: <html xmlns="http://www.w3.org/1999/xhtml"&g

  • JS完整获取IE浏览器信息包括类型、版本、语言等等

    复制代码 代码如下: <html> <head> <title>JS完整获取IE浏览器信息</title> </head> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table width="435" border="1&q

  • 客户端js判断文件类型和文件大小即限制上传大小

    由于项目需要!需要脚本在客户端判断大小和文件类型!自己网上找资料找的好辛苦!索性自己写了一个并测试 文件上传大小限制的一个例子,兼容ie6,ie7,ie8 ,Google Chrome,ff等浏览器 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="

随机推荐