在js中像数字类型、字符串类型、布尔类型这些都不能再被拆分,属于基本类型。与之相对有一种复杂类型:对象类型,它是本身由多个其他类型组合而成的。

创建对象有两种方法,一、new Object()创建一个新对象;二、通过字面量创建法,var obj={}。在对象中的数据,总是以键值对的形式出现,如:name:"孙悟空",当有多个键值对的时候,在每个的结尾有“,”区分。同时,对象的属性可以是对象也可以是函数。

当我们数据写入一个对象中,我们需要对这个数据进行传输或者存储到计算机的时候怎么办呢?计算机在存储、处理、传输数据时,必须以二进制形式进行。那么当要对一个对象进行传输或者存储的时候,我们就需要先把对象转换为字符串等可以传输的数据,而把对象转为字符串的过程就叫对象序列化。

对象序列化主要有两种方式,第一种叫做XML(extend markup language)数据:

<object>
   <name>哪吒</name>
   <age>28</age>
   <brother>
   <name>孙悟空</name>
    <age>99</age>
   </brother>
</object>

第二种方式是 JSON(JavaScript Object Notation)数据
  {name:"哪吒",age:28,brother:{name:"孙悟空",age:99}}

JSON数据的格式和 JavaScript字面量创建对象的格式基本相同,唯一的区别是JSON数据中不能有函数,JSON.stringify函数,可以把一个对象转换为JSON字符串,这个函数

会自动去除对象中的函数。

那么当我们把对象进行序列化方便我们进行了数据的传输,但是当我们需要对数据进行处理的时候我们就要对数据进行解析,当客户端从服务器请求到数据时,都是序列化之后的对象,所以在处理数据之前,先要把序列化之后的字符串再转为对象,这个过程叫做数据解析,通过JSON.parse()函数对JSON数据进行解析。

特别地,当我们在客户端的数据需要与服务器进行交互传输的时候,我们接收到的服务器的数据都是通过JSON序列化之后的数据,在客户端接收到数据后要使用这些数据,我们就要把这些JSON数据进行解析,一般都不用第一种方式对数据进行序列化。

在对象中包括:布尔对象、字符串对象、数字对象、数学对象等

布尔对象:是一个基本类型,只有true和false,只能通过new创建,不能用字面量创建

如果Boolean构造函数的参数不是一个布尔值,则该参数会被转换成一
个布尔值.如果参数是 0, -0, null, false, NaN, undefined,
或者空字符串 (""),生成的Boolean对象的值为false. 其他任何值,
包括任何对象或者字符串"false", 都会创建一个值为true的。toString()将对象转为字符串类型。

字符串对象:对字符串对象的创建一般用字面量创建的方法

/*--------------------------------*/
//.indexOf从字符串对象中返回首个被发现的给定字符串的索引值,
//如果没有找到则返回-1
var index = "abcdefgabcdefg".indexOf("b");
console.log(index);
//.lastIndexOf从字符串中找到最后一个被发现的给定字符串的索引值。
/*--------------------------------*/
//.match判断一个字符串是否满足一个正则表示式
var gex = /^1\d{10}$/;
if("1361380g129".match(gex)){
console.log("是手机号");
}else{
console.log("不是手机号");
}
/*--------------------------------*/
//.slice字符串截取,
var str8 = "0123456789";
console.log(str8.slice(2,str8.length));
/*--------------------------------*/
//.split把字符串按照某个字符进行分割,返回值是一个数组
var str9 = "iPhone,SAMSUNG,NOKIA";
var phones = str9.split(",");
console.log(phones);
/*--------------------------------*/
//.substr 截取字符串,从第几个位置开始,往后截取多少个字符
console.log(str8.substr(3,5));
/*--------------------------------*/
//.substring从某个索引位置(含)截取到某个索引位置(不含)
console.log(str8.substring(3,5));
/*--------------------------------*/
//.toUpperCase将字符串中的所有英文字母转为大写
//.toLowerCase...........转为小写
console.log("aBc".toUpperCase());
console.log("AbC".toLowerCase());
/*--------------------------------*/
//.anchor将字符串用一个a标签括起来
var str10 = "sunhuayu";
console.log(str10.anchor("a"));
/*--------------------------------*/
//.replace将字符串中的某些字符替换为新的字符,
//第三个参数,g表示全部替换,i表示忽略大小写
var str11 = "abc123abc123";
console.log(str11.replace("a","z","g"));

数学对象:

var n1 = -3.5;
// Math.abs 取绝对值
console.log(Math.abs(n1));

//Math.sin 正弦函数,函数的参数必须是弧度制
//角度转弧度 deg/180*Math.PI
console.log(Math.sin(Math.PI/6));
// Math.cos();

//Math.cbrt 立方根
//Math,sqrt 平方根
console.log(Math.cbrt(27));

//Math.ceil向上取整
//Math.floor向下取整
console.log(Math.ceil(-1.2));

//Math.pow 幂运算。几的几次方
console.log(Math.pow(9,0.5));

//Math.random() 生成一个大于等于0且小于1的随机数
Math.floor(Math.random()*11)+10

JSON数据和对象的更多相关文章

  1. 让复杂Json数据和对象自由转换 --- Gson

    Gson是谷歌用于对Json操作的库,里面有着强大而又方便的功能,最常用的就是 fromJson():将json数据转化为对象: toJson():将对象转化为json数据! 对于普通的json数据使 ...

  2. .Net Web Api返回Json数据中原对象变量名大小写问题

    这两天在工作中使用SignalR的WebSocket做数据实时传递的功能开发,在后端主动向前端广播数据以Json传递时,前端获取的Json中对应类的变量名首字母默认传递的是大写.而前端一直获取到的后台 ...

  3. JS 取Json数据中对象特定属性值

    解析JSON JSON 数据 var str = '[{"a": "1","b": "2"}, {"a&quo ...

  4. Gson转换json数据为对象

    可以通过Gson使用两种方法,将json字符串转换为对象,以下面该段报文做测试 { "id": 84041462, "lastName": "小华&q ...

  5. json数据转为对象,一般在前台把数据传回后端中使用 转https://www.cnblogs.com/zxtceq/p/6610214.html

    public static JArray GetData2JArray(string url, string key) { string jsonData = HttpHelper.HttpGet(u ...

  6. 修改后台传过来的json数据中对象的属性

    前言 今天在实习中遇到的一个小问题,后端传过来的一个json数据结构,但是对象中的属性名跟我需要的不一样(因为我是渲染echarts中的数据,属性名要一样) 这是后台传过来的数据: 需求是我需要把属性 ...

  7. Json数据和对象互转

    1.创建UserTest类 package com.cppdy; public class UserTest { private String name; private String sex; pu ...

  8. .NET读取json数据并绑定到对象

    需要引用的命名空间: 读取的具体应用: this代表本实体(对象),通过PopulateObject,直接将读取到的json数据与对象进行绑定 Json保存的具体应用: 将对象保存为Json JObj ...

  9. EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象

    EF+LINQ事物处理   在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...

随机推荐

  1. scenejs的一点Cameras小笔记

    视图模式: 一如官网所见,这个cameras 是控制的视口的东西. 他有如下4个模式 1.orbit模式 鼠标拖中物体,切换视口观察物体,鼠标滚轮变换, 放大缩小可视范围. 2.orbit/spin模 ...

  2. [恶趣味]搞了下局域网内的arp网络欺骗

    挺无聊的. 扫描,伪装,抓包. 基本上搞完就失去乐趣了. 文章在这里,想搞的可以自己拿去搞下,其实很无聊,我真是个很容易无聊的人啊.

  3. STM32F412应用开发笔记之四:与远红外炭氢传感器通讯

    远红外炭氢传感器是在多组分气体传感器中用来检测甲烷和丙烷浓度的,采用单总线串行通讯,TTL电平.所以我们需要用到UART口来实现与远红外炭氢传感器的通讯. 远红外传感器就是这个样子的: 再来一张进气和 ...

  4. WordPress一键部署网站

    每个人心里都有一个建站梦,所以今天作为我第一篇文章,就给大家圆了这场梦. 今天我来详细的一步一步带领大家利用WordPress程序来建立自己的小站以及解决直接域名访问(本地安装wordpress请阅读 ...

  5. 用gulp构建你的前端项目

    前言 前端技术发展日新月异,随着模块化.组件化的提出,前端变得越来越复杂,静态资源越来越多,那么对静态资源的处理,如压缩,合并,去掉调试信息.. 如果还是人工去处理,效率非常之低且还容易出错,于是自动 ...

  6. 关于安装CentOS 7 的注意事项

    1.安装VMware Workstation 2.安装CentOS的时候选择GNOME桌面 3.联网设置, VMWare Network Apapter VMnet8 设置IP4 自动获取IP地址,“ ...

  7. day4(homework)

    第八单元 1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) 2) 将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加) 3) 将/1.txt ...

  8. Microsoft Visual Studio 开发的C++程序软件发布相关事宜

    VS2005/VS2008软件发布: Debug版本: 非MFC程序: 编译选项mdd: 仅依赖C++库和C运行时库,需要到VS2005/VS2008下安装目录VC/redist/Debug_NonR ...

  9. 【Java并发系列01】Thread及ThreadGroup杂谈

    img { border: solid black 1px } 一.前言 最近开始学习Java并发编程,把学习过程记录下.估计不是那么系统,主要应该是Java API的介绍(不涉及最基础的概念介绍), ...

  10. Kafka基本原理

    简介 Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交 ...