00:00
那接着来学习一下我们的变量,首先变量呢是来保存我们的数据的,那想在JS中我们来声明一个变量,我们通可以通过哇关键字来声明变量。当然呢,我们也可以声明变量的同时,给变量来赋一个值。那先来看一下,我们可以写一个例子。新建一个目录DEMO2。X1。OK,在这里面来写。或者在这都行啊。通过哇声明一个变量,声明变量。
01:02
哇,声明一个A。这样就完成了一个声明变量,当然呢,我们可以再写B,也可以一次声明多个变量放到一行里来写A逗号啊,C逗号D,这都代表声明的变量,那此时声明变量之后,你看我们并没有给这个变量负值,那此时变量的值是什么呢?我们可以alert一下诶。它得到的值是一个什么undeended,对,记住当你生命变量没有赋值的时候呢,它的值是一个undeended未定义,那接着再往下,我们还可以声明变量的同时给变量来赋值。那同样的,你可以在这块来写,写一个变量,并且负一个值吧,写一个test,值是this ISA test,你看我们就保存了一个字符串,也可以再Y一个变量,TEST1写成一个12,保存了一个整形,TEST2等于一个1.2保存了一个浮点,还可以来保存一个布尔类型,包括保存一个其他的,假如一个fo,那一会儿呢,我们就可以来学到我们的数据类型,可以保存哪些类型的值,这就是我们的变量,那写完之后你可以看到,假如说我们不alert它,再往下alert一下test。
02:24
值是this is the test,这就代表声明变量的同时给变量赋值,声明变量的同时并且赋值。也可以,那接着呢,你也可以试验一下,是否可以一次声明多个变量,并且赋值。是吧,A等于B等于C等于D等于D等于一个e alert一下A。
03:01
是不是得到了A的值是一,包括你想拼上一个B。先来这样啊,先不加这个加号,因为加号还有一些特殊的作用,那我们学到运算符的时候就可以了,弹出了一个A就代表声明多个变量负相同的初始值,声明多个变量负相同的初始值。这样的效果也可以好。接着再往下来看,我们还可以。只声明变量啊,我们可以一次声明一个变量,也可以一次声明多个变量。并且呢,附相同的初始值也可以,那如果说只生命变量未对其赋值呢,我们也看到了它的值是一个按find,这也是它的默认值,那如果说变量重名呢,会产生覆盖,变量重名会产生覆盖。
04:03
我们也可以再写一个。如果说你再写一个A等于一个。33,此时再alert a,得到的就不是一了,而是33这样的效果。注意变量重名会产生覆盖。好,接着再往下,还需要在声明变量的时候需要注意,我们的变量名字是严格区分大小写的。变量名称严格区分,大家要写,接着我们可以再写一个变量名称严格。区分大小写,你写一个小A和大A是不一样的,或者说我们在说明一个y username等于一个king,再写一个y username等于一个king,这是两个变量,你可alert一下username。
05:13
再alert一下大写的username。这是两个变量。好,我们来看一下。说明了一个username等于king。稍等,我们来看一下怎么没有弹啊。Alert一下。Username。好,没问题,再声明一个,我们把它最小化就可以,就边看边改,省得每次还拿浏览器了。username等于一个queen。
06:13
再alert一下大写的user name,得到的是一个K,这叫两个变量,这一点需要注意。接着在声明变量的时候,我们还需要注意的就是我们变量名字最好含义明确。而且呢,不要包含特殊字符,以字母或者下划线开始,你可以这样来写变量名称,最好含义明确,以字母或者下划线。开始跟上。数字字母下划线。你在上面一个Y写一个H等于12,这是可以的,包括你再写一个y test5等于一个哈,这也可以,但你要写一个123 12a等于一个BB,这时候就会报错了。
07:15
你alert一下。12A。你看没有出现,其实呢,我们要拿命令行来看,已经会看到错误了。审查元素。Console在这一块看到了一个错误,多少行呢?第33行,这是一个错误,不能以字母开始,你以下划线是可以的。啊,这是错误的。如果说你说一个下划线,下划线的test等于一个hello,这是可以的。单这一个哈。而且我们的变量名字呢,最好遵循我们的驼峰标记法,或者是下划线法。
08:05
像驼峰标记法就分为我们的大骆驼、小骆驼,驼峰标记法可以分为大骆驼写成一个哇,First name。和小骆驼,这就是小骆驼写法,假如说等于一个king。这是可以的,那大骆驼呢?再写一个first name,这就是大骆驼的一个queen,这也可以,小驼峰。大国风。这样的效果,或者使用下划线法也可以哇,First内。麦子,这也可以下滑宪法。不论使用哪种方式,最好遵循一种,不要同一个脚本中既有小驼峰又有大驼峰,又有下划线,那你这个代码的可读性就比较差了,最好遵循一种方式,这是我们在声明变量的时候需要注意的,那接着再往下。
09:12
我们需要知道我们变量在内存中的一个存储与释放,那我们都知道变量是来存储我们的值的,但是存储值我们也需要知道,它其实呢,是在我们内存中开辟了一块空间来保存我们这样的数据。那其实在这块你看到我们一共写了这种三种方式,变量在我们内存中的存储与释放,第一个我们需要了解一下它的收集方式,第二个要知道一下,知道一下它的收集内容,第三个还要了解一下它的回收算法,因为我们的对象或者说字符串或者数组,它没有一个固定的大小,只有当我们这些类型数据的大小已知时呢,我们才能对其进行动态的一个存储分配。那我们JS呢,每创建一个对象,或者说字符串,或者说数组的时候,那这几个呢,可能我们还没有学,但你先了解一下这一块作为了解,那我们的解释器呢,都必须来分配内存来对机来对其进行一个存储。
10:16
所以说无论何时呢,我们动态分配了这样的内存,最终我们都要释放这些内存,以便能够再次被使用,否则呢,假如说你这个写的多了,内存占用的多了,你程序或者说你的系统就容易崩溃了。所以说在这块呢,我们需要了解一下这三种形式,第一个就是我们的收集方式,那在我们像C语言中,我们的内存呢,必须得手动进行一个释放,但JS中呢,我们不用手动释放。而且呢,就可以解除我们的这种内存的分配,它使用的是一种称为这种无用存储单元的一个收集garbage collection的这样的一个方法来进行收集的,那我们JS解释器呢,可以检测到我们的程序何时不再使用某个对象,这时候呢,它就可以把它给。
11:07
回收了,这样来进行一个收集,所以说当我们解释器确定这个对象要是无法获得时呢,就知道这个对象不再需要了,所以说就可以自动释放这个对象所占用的内存。那无用存储单元的收集呢,也是不用手动的,它可以自动进行,那对于我们的程序来说呢,对于我们程序来说呢,也是一个透明的。那我们在编程的时候呢,就可以创建任何我们想要的一个无用对象,而且呢,我们系统会自动的对其进行一个清除。这是我们在收集方式中需要了解的,那收集内容的时候呢?其实我们无用存储单元收集的关键就是我们收集器必须能够确定安全回收我们内存单元的一个时机,如果说不能回收那些仍在使用中的值呢?这时候我们就应该回收那些不再会被使用的值。
12:01
假如说有些值我们是在用的,这时候你不能回收,那回收之后呢,就会产生错误,那现在就可以回收那些如果我们不想使用的值,这样的效果。也就是呢,我们不会再用程序中任何的变量,或者说对象的属性,或者说我们数组元素的一个引用的值,这些值我们可以把它回收起来,这也是我们要回收的一个方式,或者说算法,我们最常使用的算法呢,就是标记和清除无用存储单元的这样一个回收算法。这也是我们第三个要了解的这样一个回收算法,其实回收算法中我们用到的是一个回收器,它就会周期性的便利运行环境中的所有的变量,并且给这些变量所引用的值做成一个标记,那如果说我们被引用的值呢,是一个对象或者说是数组,那么这个对象的属性或者数组的元素就会被递归的来做成一个标记,做成一个符号,对吧?如果说被引用的,如果说这个通过循环遍历。
13:04
现有的值或者说数,或者说是图,那收集器呢,就能找到,就是你标记的那些值。找到那些仍被使用的值,而那些没有被使用的值呢?这时候我们就可以通过这种回收算法。把它给回收了,因为这些值呢,就可以被就可以叫做这样一个无用的存储单元。所以说当回收器呢,给所有正在使用变量做完标记后呢,就开始进行了一个清除,那清除过程中呢,我们回收器也是将便利环境中所有值的一个列表释放那些没有被标记的值,也就是不使用的值。这样的一个过程,所以说这一点我们也需要进行一个了解,这是我们在变量的这个啊。语法中我们需要掌握的这些内容。掌握了这个之后呢,其实我们刚才说到了变量是来存储值的,那可以存储哪些类型的值,这也是我们要写的,像我们在做例子中,我们写过像这种形式,写过一个字符串,写过一个整数,写过布尔,写过这么多类型的值,那现在我们就需要了解一下我们JS中支持的一个数据类型。
14:15
好,那下一节课呢,我们就来带着大家来学习一下我们JS中支持的数据类型。这节课我们就上到这里,下来之后呢,大家可以来写一下这些变量,还有就声明变量的时候我们需要注意的一些问题,这一块大家需要有个了解,好,那这节课呢,我们就上到这里,感谢大家的收看。
我来说两句