00:00
呃,项目的问题解决了,那我们接下来呢,把一些细节呢,我们再来说一说,怎么细节啊,我们前面我们提到了那个杰森,那什么叫杰森,怎么去理解它。那么接身字符串又是怎么回事儿,我们一起来看一看,那么在我们这里有一个文档,我们的一个静态页面,我们打开,打开以后咱们先把我们尖括号script的标签给它写上。好了,写完以后,首先我们在说Jason之前,我们要说点别的,说什么呢?就是我们的javascript的语言,它的一些语法结构是什么样的,首先啊,我们的JAVASCRIPT80%它都是方法,是函数,所以我们有的时候把javascript也称之为叫函数式语言,所以我们在javascript当中,如果想要声明对象,其实用方法就够了,那么这里我们比方说举个例子,叫function,我叫做student,叫学生。
01:03
好了,你这么写完以后,其实就类似于我们Java当中声明了一个类的感觉,但是你可能会觉得,诶,这不是一个类,这不是一个方法吗?但是告诉你javascript当中它又是一个方法,它又是一个类。那在Java当中有类就可以创建对象,那我们这儿呢,我们这也可以,大家看我现在就可以这么写,叫VAR来声明一个变量S,它就可以直接写上叫new student,你这么写就可以了,然后我们试一试alerts。行了,写完之后,现在我们来看一看。我双击,双击以后大家有没有发现我们alert出来了一个对象,说明我们的对象构建成功,也就意味着这种方法是没有任何问题的。那好,那你有对象,那你有没有属性呢?可以有,大家看我们的属性可以这样写,叫this,点我们叫student name,叫s name啊,然后呢,我们写上叫张三,或者呢,你的年龄这点我们等于20,你这样的话就等同于把类的属性给它添加好了,那你添加好以后该如何去访问它呢?我们来写上叫点我们s name。
02:27
你这么写以后,对象的属性你就能访问到,所以刷新。张三就出来了,那你能访问到我能不能改呢?我们试一试来s.s name,它等于李试。那我这么写完以后,你再来刷新,你会发现,没错,它的属性已经发生了变化,变成了李四。诶老师呀,那如果我这里面要是没有写,会出现什么情况,比方说我这没有写这个属性。
03:00
你没有写这个属性的话,那么大家想想它有这个属性吗?他没有,但是你来观察一下,刷新它照样能够得到李四对吗?那这又是为什么呢?我就告诉你,因为javascript它是支持我们动态添加属性的,所以我们写上叫JS。它支持给。对象动态添加属性。什么意思啊,就是意味着呀,你这个对象里面没这个属性,但是你直接对象点这个属性就等同于动态添加,那这样的话,他以前没有,现在就有了,但是你要千万注意,它只是给这个对象添加属性,如果你在new一个新的对象,它就没这个属性了,所以VAR我们写上S1等于new student,然后呢,你还是来写上S1,你刷新一下看看效果。专心,你看有吗?按de find,也就意味着我们只能给某一个对象添加属性,不是说所有的对象都能添加这个属性,这个你首先要区分开好了,那我们说完这个以后,我们接下来说那个接阵。
04:16
这个Jason是什么意思呢?首先它是几个单词的缩写。它叫做javascript object not。什么意思?它表述的是一种特定格式的javascript对象,也就意味着你把这个notation去掉以后就是一个javascript对象,这不也是个Java对象吗?那么这个JA对象跟它有什么区别呢?区别就在于我们刚刚knew的这个对象,它有类型,它是student类型。而我们的Jason对象是没有类型的,在某些情况下,我是不关心它的类型的,我只希望把这个对象用起来。所以在这种情况下,我们的javascript就提供了一种非常方便的方式来声明对象。
05:11
我不需要类型,我只需要对象,怎么办?这个时候就有一种特定的格式了,Object等于大括号。大括号就是特定的格式,它就表述的是声明对象啊,咱们叫明对象,那你声明对象了,那对象的属性在哪呢?属性有两种声明方式,第一种对象点属性就可以了。我们前面讲了,我们的GS,它是可以给对象动态添加属性的,所以我们这么写是肯定没有问题的,所以把它咱们挪到下面来。咱们就叫object点好了,写完以后我们刷新一下,你会发现没错,张三他出来了啊,然后接下来我们再说另外一种方式,另外一种方式就不是说用这种方式了,而是在大括号的里面来声明属性,那么声明的方式比较特殊,我们直接写就行了,叫name写个冒号,冒号前面的或者说左边的它是我们属性的名称,冒号右边的是我的属性值。
06:30
咱们叫李四,我这么写其实也可以,那好,现在我刷新一下,你会发现我就把李四得到了,那如果有多个属性怎么办?多个属性在这种格式下面,它是用逗号给它分隔开,比方说年龄,年龄是个数字,我就写个20,那这样的话我们就可以得到它的年龄,所以啊,我们来刷新,你会发现20就出来了。所以我们的对象可以声明我们的属性,可以声明没有任何的问题,这是完全可以做到的,所以我们就把这样的对象称之为接身对象,因为它的格式是非常特殊的,所以这个对象就叫接身对象。
07:19
那么Jason对象除了我们的大括号以外,我们还有一种格式,咱们叫阿叫数组。在我们的Java script当中,你写一个中括号,就表述的是杰森的速度。它表示的是个数组。那数组里面应该有对象啊,所以它里面是可以写多个大括号的,而且每个大括号用逗号隔开,它就表述的是一个集合当中的元素了,那好,我来试一试吧,是什么呢?我想看一看这个阿瑞,它里面元素的长度点。那我们现在来刷新一下,我们看一看刷新刷新以后,你看这不就是那个二吗?所以在这种情况下,我们的Jason有普通的对象,还有这种集合对象,这是一种特定的格式啊。
08:14
行了,那这个咱们明白了以后,咱们再反过来说一下,咱们之前提到的那个杰森字符串是怎么回事儿,那么杰森字符串啊,主要原因是因为我们的服务器给浏览器返回数据的时候,我们没有办法把对象返回,比方说我们刚才。我能不能把数据库查询的结果返回给我们浏览器呢?你不查询了一个U出来吗?那么能不能给浏览器呢?这个你做不到,网络中没有办法传对象,那你说老师啊,那我传一个数字一行不行呢?我告诉你也不行,因为在网络中是无法传数字的,它只能传字符串,如果你写的是是个数字一,它也当成字符串一来进行传递。
09:05
所以在网络中一都传不了,那对象怎么传,根本就传不了,所以我们既然只能传字符串,那我就想办法想把那个对象变成字符串就可以了,但是你变成字符串以后,那我如何解析呢?诶,我就发现我们的javascript当中这种特殊格式的对象我们是可以转换的,也就意味着啊,如果把我们后台的对象转换成这种格式的话,那你的javascript不就可以用了吗?所以在这种情况下,我们才会出现一个叫接神字符串的概念。咱们写上叫做杰森字符串,什么叫做杰森字符串啊,说的简单点就是说将。后台对象,它按照Jason的格式转换为字符串,然后输出到浏览器中。
10:05
啊,那你输出到浏览器中干嘛呢?让我们的JS当成对象来处理。这就是我们为什么要使用接身字符串的原因,就是因为你的后台不能传对象,但是我的浏览器中又可以解析一个字符串来使用,所以在这种情况下,我们就可以把对象按照这个特定的格式转换成特定的字符串输出到浏览器中,然后Java script就可以把它当成对象来使用了,非常的方便。
我来说两句