首页 > 代码库 > 我是这样记录javascript知识的------Day31

我是这样记录javascript知识的------Day31

在陆续研究了几个javascript的几个小应用后,也算对javascript有了更深一点的认识,头脑中大约都有些印象,整体上说却有些模糊,这时,我知道,是时候看看w3cshool的这部分介绍了。

没办法,我也曾试过一开始就去看这w3cshool,可那铺天盖地的各种理论让我是苦不堪言,单纯的去背这些,真的有些难度,我习惯了“重塑”的方法记忆事物,所谓“重塑”是我自己想的一个词,就是将它理解了,用自己的语言整理出来,在脑海中能记录几个实例,并能从几个实例中整理出骨架来,可以随便补充血肉进行填充的时候,就是记住了,简单了说就是:理解原理,对比实例,实际应用,至于语言的描述,只能用我自己的语言了....

看完之后,大体上整理出这么一篇骨架,感觉还是适合自己的方法更容易记忆。

1、javascript来了

javascript是为了解决服务器端语言的不足而出现的,像注册验证,总不能巴巴传到服务器,读取几十个项目了,结果发现这一个必填的漏了,然后再巴巴赶回来,浪费时间,浪费资源.....

区别于服务器端脚本语言:它无需依赖服务器的支持,可以单独运行。

javascript已是所有现代浏览器以及html5的默认脚本语言

当然它也有着它的不足,这个众说纷纭,我暂时不好说什么,边走边看吧。

2、那些尘封的往事

一个叫布兰登.艾奇的男人,brendan Eich,发明出的。至于他究竟是谁,爱谁谁,我只知道他现在还活着

那一年是1995年,那个地方都称它网景公司(Netscape),最初它被称为livescript,在sun公司开始合作之后,改名为了javascript,就这样,这俨然是it行业熠熠生辉的双子星成长史啊。

原始的总是混乱,最初的不同浏览器上出现了三足鼎立的现象:NetScape Navigator 3.0的javascript,ie的Jscript和CEnvi的scriptcase,各浏览器间水火不容。

乱世总要有定时,1997年ECMA欧洲计算机制造商协会,锤炼除了ECMAscript的标准化语言,从此,各浏览器就以此为蓝本,开始修正和发展,慢慢铺开的更是javascript的扶摇直上之路。

3、完整的javascript结构组成

*核心ECMAscript

*文档对象模型(DOM)

*浏览器对象模型(BOM)

4、基本语法

这铺开的知识面太广,我只能一点点研究,就从这核心的ECMAscript开始:

大前提,最基础:区分大小写/雷同java语法/可注释/尾部";"可有可无(这个貌似比较鸡肋,还是像java一样写规范了自己也明了吧)


我们对脚本语言的应用,最基本就是对数据的处理,这就要求我们要有值有对象:

我们通常都是用变量来存储数值,javascript的变量为弱类型,无需明确的数据类型/不一定需要初始化/不一定存储相同类型的值,甚至可以不必声明

备注:为声明过的标示符,系统默认用该变量名建一个全局变量,并将其初始化为指定的值,这里就必须要有值了

另外它的基本数据类型不同于java的“四类八种”,只有五种基本数据类型:Undefined、Null、boolean、Number和String,可用typeof来进行判断


运算符

有了值我们就要进行操作,我们既然是用变量来进行实现的,

那我们首先要进行赋值运算(“=”),当然也可能会用到逗号运算符(“,”),像Var a=1,b=2;

也有了值,当存在多个变量时,我们就可以判断其内部值之间的关系了,可能是用等性运算符“==”,“!=”,“===”,只有无需类型转换就相等的值才能用“===”,有效的避免了弱类型变量的问题啊,当然也可能你用的会是关系运算符(“>”,"<"),字符用ASCII来对比,字符碰到数字就转化成数字,弱类型却又把它的优势用到了这里;

对比过后,我们如果想改变当前的关系状况,就需要进行换算,可以简单的加法运算符(“+”,“-”),也可以是乘法运算符(“*”,“/”,“%”);

我们如何来判定换算是否成功呢,可以用逻辑运算符(“NOT”,“OR”,“AND”),甚至可以更高大上的条件运算符(“----?--:--”);

当然不要忘记我们雷同于java的位运算,我们最简单的一元运算啊(“delete”,“++”,“--”,“+=”;“-=”);

好了,这样所有的运算符就全了,这样记下来顿时感觉条理多了


至于script语句几乎完全雷同于java了,也没什么特别要介绍的,无非是“if”,“break”,“continue”,“while”,“for”,“switch”,“for-in”的迭代之前用的有些少了,当然标签语句还是有那么一点意思的

函数嘛,函数名,参数,代码块function do(var a){}或者呢,就是命名对象了吧,var do=function(var a){},这两个在我看来也差不多,比较在意的是闭包,之前对这个名词了解太少了呢,理解还不够深刻,近几天专门研究下吧。


时间有些晚了,今天就先到这里吧,每每来看这w3cschool都有新收获啊,看来只是做应用还是不够,当然还是很有必要的,会用了,理解起来就简单的多了,我是这么感觉的,元芳,你怎么看....