JS第一课(对JavaScript语言的认识)
JS的大纲内容
第一个问题:前端的三大核心你知道多少呀?
前端开发最主要需要掌握的三个知识点:Html,Css,Js;
- ◦html-简单易学,掌握常用的标签即可
- ◦css-属性规则较多,多做练习和项目
- ◦js-上手容易,但是精通很难。学会它需要几分钟,掌握它需要很多年
计算机语言
前面我们已经回顾了HTML和CSS很多相关的知识:
◦在之前我们提到过,HTML是一种标记语言,CSS是一种样式语言
他们本身都是属于计算机语言,因为都在和计算机沟通交流:
◦在生活中两个人想要沟通,必然是通过某一种语言(中/英/粤)
◦计算机语言就是我们人和计算机进行交流要学习的语言
网页的三大组成部分的另外一个核心就是Javascript: Javascript必然也是一种计算机语言;
◦JavaScript就像是给我们的网页添加上了生命和灵魂
编程语言(Java,C,C++,Js,Python...)
事实上,JavaScript我们可以对其有更加精准的说法: 编程语言.
我们先搞清楚计算机语言和编程语言的关系:
计算机语言: 计算机语言(computer language)指用于人和计算机之间通讯的语言,是人于计算机之间传递信息的介质。但是其概念比通用的编程语言要更广泛。例如,HTML是标记语言,但并不是编程语言。
编程语言:编程语言(programming language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令,一种能够让程序员准确地定义计算机所需要使用数据的计算机语言,并精确地定义在不同情况下所应采取的行动(包括我们的分支语句,循环语句)
很抽象,编程语言具备的特点:
◦数据和数据结构({},[])
◦指令及流程控制(switch/if/for/while)
◦引用机制和重用机制
◦设计哲学
第二个问题:编程语言的发展历史我们来了解一下吗?
阶段一:机器语言
◦计算机的存储单元只有0和1两种状态,一次一串代码要让计算机“读懂”,这串代码只能由0和1组成。
◦像这种有数字0和1按照一定的规律组成的代码就叫机器码,也叫二进制编码。
◦一定长度的机器码组成了机器指令,用这些机器指令编码写的程序就称为机器语言。
优点:
◦代码能被计算机直接识别,不需要经过编译解析;
◦直接对硬件产生作用,程序的执行效率非常的搞;
缺点:
◦程序全是0和1的指令代码,可读性差,还容易出错;
◦不易编写(目前没有人这样开发)
阶段二:汇编语言
◦为了解决机器语言的缺陷,人们发明了另外一种语言--汇编语言。
◦这种语言用符号来代替很长的,难以记忆的0、1代码。(mov/push指令,经过汇编器,汇编代码再进一步转成0101)
优点:
◦像机器语言一样,可以直接访问、控制计算机的各种硬件设备;
◦占用内存少,执行速度快;
缺点:
◦第一,不同的机器有不同的汇编语言语法和编译器,代码缺乏可移植性
◦也就是说,一个程序只能在一种机器上运行,换到其他机器上可能就不能运行;
◦第二,符号非常多,难记
◦即使是完成简单的功能也需要大量的汇编语言代码,很容易产生bug,难于调试;
应用场景
◦操作系统内核、驱动程序、单片机程序
阶段三:高级语言
◦最好的编程语言应该是什么?自然语言;
◦而高级语言,就是接近自然语言,更符合人类的思维方式
◦跟和人交流的方式很相似,但大多数编程语言都是国外发明的,因为都是接近于英文的交流方式
优点:
◦简单、易用、易于理解,语法和结构类似于普通英文;
◦远离对硬件的直接操作,使得一般人经过学习之后都可以编程,而不用熟悉硬件知识;
◦一个程序还可以在不同的机器上运行,具有可移植性;
缺点:
◦程序不能直接被计算机识别,需要经编译器翻译成二级制指令后,才能运行到计算机上;
◦种类繁多:Javascript、C语言、c++、c#、java、objective-c、python等;
第三个问题: 如何去了解JavaScript的编程语言呢?
首先去了解JavaScript的历史过程:跟着PPT走吧:
JavaScript组成:
标题
JavaScript由谁来运行:
认识JavaScript引擎
为什么需要JavaScript引擎呢?
◦我们前面说过,高级的编程语言都是需要转成最终的机器指令来执行的;
◦事实上我们编写的JavaScript无论你交给浏览器或者Node执行,最后都是需要被CPU执行的;
◦但是CPU只认识自己的指令集,实际上是机器语言,才能被CPU所执行;
◦所以我们需要JavaScript引擎帮助我们JavaScript代码翻译成CPU指令来执行;
比较常见的JavaScript引擎有哪些呢?
◦SpiderMonkey:第一款JavaScript引擎,由Brendan Eich开发(JavaScript作者)
◦Chakra:微软开发,用于IT浏览器;
◦JavaScriptCore:Webkit的JavaScript引擎,Apple公司开发;
◦V8:Goole开发的强大JavaScript引擎,也帮助Chrome从众多浏览器中脱颖而出
◦等等..