发表于: 2017-04-11 21:29:49

1 1221


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin

 JS根据需要显示和隐藏视图;

了解JSON

 JS对DOM样式和内容进行更复杂的操作使得页面可以动态地呈现


明天计划的事情:(一定要写非常细致的内容) 

浏览器的本地存储

了解JS 调试技巧

遇到的问题:(遇到什么困难,怎么解决的) 


收获:(通过今天的学习,学到了什么知识)

状态机——也称之为“有限状态机”(Finite State Machines,FSM)使用状态机可以轻松地管理很多控制器,根据需要显示和隐藏视图。那么,到底什么是状态机?本质上讲状态机由两部分组成:状态和转换器。它只有一个活动状态,但也包含很多非活动状态(passive state)。当活动状态之间相互切换时就会调用状态转换器。状态机如何工作呢?考虑这样一个场景,应用中存在一些视图,它们的显示是相互独立的,比如一个视图用来显示联系人,另一个视图用来编辑联系人。这两个视图一定是互斥的关系,其中一个显示时另一个一定是隐藏的。这个场景就非常适合引入状态机,因为它能确保每个时刻只有一种视图是激活的。的确,如果我们想添加一些新视图,比如一个承载设置操作的视图,用状态机来处理这种场景绰绰有余。

简单说,它有三个特征:

  * 状态总数(state)是有限的。
  * 任一时刻,只处在一种状态之中。
  * 某种条件下,会从一种状态转变(transition)到另一种状态。



JSON 是什么?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming LanguageStandard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

  • “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 
  • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

JSON具有以下这些形式:

对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

一般的形式是:


{name:"庄引",age:24}

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

一个或者多个值用,分区后,使用[,]括起来就形成了这样的列表,形如:


[collectioncollection]

值(value)可以是双引号括起来的字符串(string)、数值(number)、truefalse、 null、对象(object)或者数组(array)。这些结构可以嵌套。

字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

字符串(string)与C或者Java的字符串非常相似。

数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。



了解如何解析读取JSON 

JavaScripteval()函数(javascript通过eval()调用解释器)解析JSON数据。


在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:
  • 对象表示为键值对
  • 数据由逗号分隔
  • 花括号{}保存对象
  • 方括号[]保存数组

JSON 键/值对

JSON 键值对是用来保存 JS 对象的一种方式,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值:
{firstName : "John"}

这很容易理解,等价于这条 JavaScript 语句:

{firstName = "John"}
弄清JSON 与 JS 对象的关系
JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的

var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串


JSON 和 JS 对象互转

要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法:

var json JSON.stringify({a'Hello'b'World'})//结果是 '{"a": "Hello", "b": "World"}'
要实现从 JSON 转换为对象,使用 JSON.parse() 方法:
var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}
在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。
对象:对象在 JS 中是使用花括号包裹 {} 起来的内容,数据结构为 {key1:value1, key2:value2, ...} 的键值对结构。在面向对象的语言中,key 为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。值的类型可以是任意类型。
数组:数组在 JS 中是方括号 [] 包裹起来的内容,数据结构为 ["java", "javascript", "vb", ...] 的索引结构。在 JS 中,数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引使用得多。同样,值的类型可以是任意类型。
JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式,例如在 PHP 中,可以将 JSON 还原为数组或者一个基本对象。

表示对象

JSON最常用的格式是对象的 键值对。
{"firstName": "Brett", "lastName": "McLaughlin"}

表示数组

和普通的 JS 数组一样,JSON 表示数组的方式也是使用方括号 []。
{
   "people": [
   {
       "firstName": "Brett",
       "lastName":"McLaughlin"
   },
   {
       "firstName":"Jason",
       "lastName":"Hunter"
   }
]
}
在这个示例中,只有一个名为 people的变量,值是包含两个条目的数组,每个条目是一个人的记录,其中包含名和姓。用括号将记录组合成一个值。当然,可以使用相同的语法表示更更多的值(每个值包含多个记录)。



返回列表 返回列表
评论

    分享到