web前端-JavaScript知识体系(初学者)

1、基础语法

JavaScript基础语法包括变量定义、数据类型、循环、选择、内置对象等。

数据类型有string、number、Boolean(三种基础类型)、null、undefined(两种特殊类型)、object(引用类型)等。JavaScript可以用过typeof来判断基础数据类型,但要准确判断引用类型,需要用object的toString方法。

JavaScript内置对象有date、array、JSON、正则表达式。其中date和array用的最多;JSON可以用来对对象和数组进行序列化和反序列化,还可以实现对象的深拷贝;正则表达式则用来处理字符串。

2、函数原型链

JavaScript没有继承概念,但可以利用函数的原型机制来实现JavaScript的继承。

JavaScript在function对象中建立的原型对象prototype,并以function对象为主线,从上至下,在内部构建了一条原型链。简单说,就是建立的变量查找机制,当访问一个对象的属性时,先查找对象本身是否存在,若不存在就去该对象的原型链上去找,直到object对象为止,都没找到该属性就但会undefined。

3、函数作用域

即变量在生命他们的函数体以及这个函数嵌套的函数体中都是有效的。

4、函数指针this

this指向函数运行时被调用的对象。

function对象还提供了call、apply、bind等方法来改变this指向,其中call和apply主动执行函数,只是参数的传递方式不同;bind一般在事件回调中使用。

5、构造函数new

JavaScript中的函数分构造函数和普通函数,使用new来创建对象时,对应是的函数就是构造函数;通过对象来调用时就是普通函数。

当通过new来创建一个新对象时,JavaScript底层将新对象的原型链指向了构造函数的原型对象,于是就在新对象和函数对象间建立的一条函数原型链,通过新对象可以访问到函数对象原型prototype中的方法和属性。

6、闭包

是一个主动执行的代码块,且这个代码块可以永久保存局部变量,又不会污染全局变量,可以形成一个独立的执行过程。因此常用闭包来定义组件。

7、单线程和异步队列

JavaScript是单线程与i眼,在浏览器中,当JavaScript代码被加载时,浏览器会为其分配一个主线程来执行任务,主线程会 形成一个全局执行环境,执行环境采用栈的方式将待执行的任务按执行顺序一次来执行。

但在浏览器中一些任务时非常耗时的,如HTTP请求、定时器、事件回调等,为了保证其他任务的执行效率不被影响,JavaScript在执行环境中维护了一个异步队列,并将这些任务放到队列中进程等待,只有主线程的任务执行完后,才会去检查异步队列中的任务是否需要开始执行。

8、异步通讯Ajax

Ajax时浏览器专门用来和服务器进行交互的,其核心对象是XMLHttpRequest,通过该对象可以创建一个Ajax请求。为了防止XSS攻击,浏览器对Ajax做了限制,不允许Ajax跨域请求服务器,即只能访问当前域名下的url。

可通过JSONP实现跨域请求。

9、DOM对象document

document对象保存着整个web页面的DOM结构,在页面上的所有元素最终都会映射为一个dom对象。

10、事件系统event

事件是用户和页面交互的基础,DOM事件包括pc端的鼠标事件mouse以及移动端的触摸事件touch、手势事件guesture。

由于DOM结构可能会多层嵌套,衍生出两种事件流——事件捕捉和事件冒泡,后者常用。

11、全局对象window

在JavaScript中,当一段JavaScript代码在浏览器中加载执行时,JavaScript引擎会在内存中构建一个全局执行环境(作用是保证所有的函数能够按正确的顺序被执行)而window对象则是这个执行环境的一个全局对象。window对象中内置了很多api和对象,document就是其中一个。

猜你喜欢

转载自blog.csdn.net/D_C_Hao/article/details/84946122