写在前面
我们在Electron、Node.js上面做开发,开发语言就是JavaScript,另外,很多库也是利用JavaScript封装而成,了解JavaScript的核心知识是必须的。
JavaScript入门学习地址参见:W3chool 教程,里面教程简洁全面,入门足够。这里只将学习的核心的一些概念和知识列出。
JavaScript语言特性
- Javascript语言标准规范是ECMAScript,浏览器内置的JavaScript脚本引擎大部分实现遵循该规范;
- 通用支持:浏览器自带脚本引擎,无需插件,因此现在前端动态语言基本上只有JavaScript,后端五花八门;
- 动态性:
- 动态类型:变量的类型可变,根据变量当前的值的类型确定,提供获取变量类型的方法;
- 运行计算:提供eval函数,在运行时对字符串语句代码进行动态执行和计算;
- 基于原型和面向对象:
- 一切几乎都是对象,对象本质上是个关联数组,支持使用原型进行扩展,对象属性可以在运行时添加、重新绑定、删除;
- 原型:JS利用原型实现继承性,与Java等面向对象语言使用类实现不同,原型和类一样,是对象的元定义和模板;
- 函数作为对象构造器,使用new和object.create创建原型实例,也就是对象;
- 函数也作为方法,函数定义和对象方法定义没有区别;
- 支持函数,函数本质上也是对象,有方法和属性,支持内嵌函数和匿名函数;
DOM、BOM和JavaScript的关系
- 完整的JavaScript应该包括ECMAScript、DOM和BOM;
- ECMAScript:规定语言语法规则,定义语言的所有属性、方法和对象;
- DOM:文档对象模型,定义对象和方法,使用树来表示文档,从而提供对文档所有元素的控制能力,可以在不重载网页的情况下改变网页外观和内容;
- BOM:浏览器对象模型,定义对象和接口,提供访问浏览器交互的能力,可以控制窗口、屏幕、cookie以及IE中的ActiveX插件等;
- JavaScript网景自发布起,基本就提供语言、BOM、DOM不同程度的支持,单独的JavaScript语言并无法发挥最大作用;
JavaScript开发调试
开发环境
- 开发工具:记事本、vs code、JetBrains Webstorm、网页编辑器都可
- 测试运行:chrome浏览器、IE浏览器开发工具,建议用chrome的开发者模式
浏览器内置引擎直接执行js脚本
- 在地址栏输入:javascript:alert(“运行JS”),回车即可运行
- F12打开开发者工具,在控制台输入js代码,即可运行,或者新建snippet脚本片段运行
- 新建空白网页,引入js脚本,用浏览器打开即可运行
设置断点和控制台输出
- javascript代码中加入 debugger;手工设置断点;
- 打开chrome的开发者工具,手工设置断点,执行观察调试;
- 代码行太长换行,只能在文本字符串中使用反斜杠\换行,不能随意断行;
重点知识
undefined值和null的区别
- 变量声明时未赋值,读取该变量时输出为un