JS语言核心——词法结构
知识点:
1. JS字符集:unicode字符集编写,区分大小写;
2. 格式控制符:空格可以自动忽略;
3. 注释://和/**/;
4. 直接量:程序中直接使用的量;
5. 标识符和保留字;
6. 分号可选;
上面这些知识点对于有“江湖”(指编程)经验的人来说都是小菜,这些对于实际开发来说没有什么太大用处,只能说是“小技巧”。
(2)unicode作为一个国际化的编码,基本上可以表示世界上所有语言,但是unicode还有不同的版本,这点可以“不求甚解”,既然JS也使用unicode编码,那么对于格式控制符肯定需要进行转义的,程序的转码基本上都是“\”开头然后加上转义字符,反正我认为开发的时候80%的工作是不会涉及控制转换的,如果确实需要,找谷老师或者度娘问问就清楚了。
(3)关于JS的字符集我们需要知道的就是:编写JS脚本的时候用英文和半角写,还有就是JS是区分大小写的就够了,其他的一般不干我们鸟事儿!出现乱码详细大家都知道去调字符编码!
PS:JS是区分大消息的,和HTML、CSS混合编程的时候应该注意,HTML和CSS是不区分大消息的,也就是说如果我们在用JS控制HTML属性的时候对html来说id和ID没区别,但是JS有区别!
(1)JS会忽略空格和制表符,这点和Java也一样。这意味着我们可以使用空格和制表符进行格式控制,让代码更好看。
(2)标准化:JS给出了一种字符编码的标准化处理方式。关于这点,其实就是说用不同编码对于JS编辑器显示的效果可能是一样的,比如我们现实拼音的时候,用ASCII编码和用unicode编码编辑器中“显示”效果是一样的,但是JS运行的时候会乱码,这就是所谓的“表现一致,本质不同”。为了让字符的本质一样,unicode有一个标准的首选编码格式(注意是unicode编码给出的不是JS的,也就是这个知识点等于白说!)。JS认为我们编码的时候已经遵循这个规定了,所以处理的时候不再对代码进行标准化处理。Java会对不同的编码编译的时候进行标准化处理的。
PS:格式控制符这儿块儿没什么意思,有心的知道知道就行了,知道的太多了也不好!
没什么说的,和Java一样,但是要注意,在HTML中注释是<!-- -->,别弄混了。
程序中直接使用的数据的数值。
这个概念挺新鲜,学Java的时候从没遇到过,书中大量用到了直接量这个概念,其实没什么太多的东西,就是为了区分变量啥的造出来的一个词儿。比如
var a = 11;这里a是变量,11就称为直接量,我们还可以描述为11是变量a的值,但是有的时候我们没法说变量的值,因为我们需要区分变量和值,但是值又可能代表其他意思,所以就说直接量,仅此而已!
Js中的分号是可选的。在java中,分号表示一条语句结束,但是js可以省略分号,在预编译期间,JS会自动添加分号,但是机器毕竟是机器,分号的添加再智能也会出错,毕竟情况太多,奇葩的程序员也太多了,比如:
returnfalse;JS执行器会“翻译”成:
return;false;retun;会中断执行,返回一个undefined,和我们预期的完全不一样。
PS:这个知识点在我看来也没什么意思,当看到比较“奇葩”的代码的时候这个知识点可能就有帮助了。
JS的关键字、保留字和Java的差不多,基本上面向对象编程语言,那些关键字和保留字都大同小异,我们编写代码的时候没必要非得跟那么几个词儿冲突。
其实不管是Java还是C#又或者是JS,它们都是基于面向对象的思想设计的。既然是面向对象的,那么语言的规范制作者,肯定遵循的是同一种编程哲学,所以起得名字也会大同小异的,我想没有那个规范制作者非要用class关键标示对象,用object关键字标示类的。除非“它”是个奇葩!!
PS:关键字和保留字这些没什么可纠结的,江湖老大发话了,让我们打架不要动刀枪,你非得用,那不是找死吗,是吧!
这章在我看来没什么“实质性”(就是有实际帮助的,功利主义嘛)的内容,对于没有编程经验的,这些知识或许有用,但是有编程经验的,这些都是“通用知识”了,看了有的时候就是在“印证”自己的经验罢了。如果这些知识还有“茅塞顿开”的感觉,我只能,呵呵……呵呵!