MVVM模式
MVVM(Model-View-ViewModel)模式包括3个核心部分。
*Model(模型):由核心的业务逻辑产生的数据对象,例如从数据库取出并做特定处理后得到的数据。
*View(视图):即用户界面。
*ViewModel(视图模型):用于链接匹配模型和视图的专用模型。
【npm包管理】
知识点:
npm install 模块名:本地安装。安装到当前项目的node_modules目录下,只有当前项目可以用此依赖。
npm install 模块名 -g:全局安装。电脑上的任何项目都可以使用这个依赖。
npm install 模块名 -save:安装到node_modules目录下,一般安装生产环境所用依赖。如vue,element-ui。
npm install 模块名 -save -dev:安装到node_modules目录下,一般安装开发环境所用依赖。如webpack、babel。
【HTTP状态码】
知识点:
1开头的状态码(信息类)
100,接收的请求正在处理。
2开头的状态码(成功类)
200,服务器已成功处理了请求。
3开头的状态码(重定向)
301,永久性重定向。302,临时重定向。
4开头的状态码(客户端错误)
400,错误请求,服务器不理解请求的语法。403,服务器拒绝请求。
5开头的状态码(服务器错误)
500,服务器内部错误,无法完成请求。503,服务器停机维护,无法处理请求。
【请求方法】
知识点:
GET请求:可以理解为“取”的意思。用来获取数据,不对服务器的数据做任何的修改、新增、删除等操作。
POST请求:可以理解为“贴”的意思。数据发送到服务器以创建或更新资源,侧重于更新数据。
PUT请求:可以理解为“放”的意思。数据发送到服务器以创建或更新资源,侧重于创建数据。
DELETE请求:“删除”。删除指定的资源。
HEAD请求:HEAD方法与GET方法相同,也是从服务器获取信息。但服务器不会返回请求的实体数据,只会传回相应头。 可以用在很多并不真正需要资源的场合,避免传输body数据的浪费。 比如,想要检查一个文件是否存在,只要发个信息HEAD请求就可以了,没有必要用GET把整个文件都取下来。
PATCH(布丁)请求:用于上传数据并更新“部分”资源。
【定时器】
知识点:
1.setTimeout:定时执行。设置一个时间,等待时间到达的时候只执行一次,但是执行以后定时器还在,只是没有运行。
2.setInterval:循环执行。设置一个时间间隔,每隔一段时间都会执行一次这个方法,直到这个定时器被销毁掉。 (使用clearTimeout()和clearInterval()可以清除定时器。)
【变量】
知识点:
变量的名称须遵循如下3条规则
1.首字母必须是字母(大小写均可)、下划线(_),或者美元符号($).(数字开头,非法。)
2.余下的字符可以是下划线、美元符号、任意字母或者数字字符。
3.变量名不能是关键字(keyword)或者保留字。
4.驼峰命名
【数组方法】
知识点:
1.map:利用某种规则映射得到一个新数组。(遍历每一个元素,并对每一个元素做相应处理,返回一个新数组。) 回调函数执行次数等于数组长度。map函数返回的新数组长度等于原数组长度。回调函数一定要return。
2.filter:用于筛选数组中满足条件的元素,返回筛选后的新数组。 回调函数执行次数等于数组长度。filter函数返回的新数组长度不等于原数组长度。
3.forEach:用于遍历数组,相当于for循环的另一种写法。 回调函数执行次数等于数组长度。forEach函数没有返回值。回调函数不需要return。
4.some:用于判断数组中是否存在满足条件的元素. some函数返回一个布尔类型值。
5.every:用于判断数组中是否所有元素都满足条件. every函数返回一个布尔类型值。
6.findIndex:获取符合条件的第一个元素位置(下标)。 符合则返回元素下标,不符合则返回-1.
7.reduce:遍历数组元素,为每个数组执行一次回调函数。
【npm包管理】
知识点:
npm install 模块名:本地安装。安装到当前项目的node_modules目录下,只有当前项目可以用此依赖。
npm install 模块名 -g:全局安装。电脑上的任何项目都可以使用这个依赖。
npm install 模块名 -save:安装到node_modules目录下,一般安装生产环境所用依赖。如vue,element-ui。
npm install 模块名 -save -dev:安装到node_modules目录下,一般安装开发环境所用依赖。如webpack、babel。
相等(==)和全等(===)运算符有哪些区别?
①相等运算符用于比较两个操作数是否相等,操作数会进行类型转换。
②全等运算符用于比较两个操作数是否严格相等,操作数不会进行类型转换。
【数据类型】
知识点:
基本数据类型:Number、String、Boolean、Null、Undefined、Symbol(ES6),这些类型可以直接操作保存在变量中的实际值.基本数据类型是指存放在栈中的简单数据段,数据大小确定,内存空间大小可以分配, 它们是直接按值存放的,所以可以直接按值访问。基本数据类型的值是没有办法添加属性和方法的。
引用数据类型:Object(在JS中除了基本数据类型以外的都是对象,数据是对象,函数是对象,正则表达式是对象) 引用类型是存放在堆内存中的对象,变量其实是保存的在栈内存中的一个指针(保存的是堆内存中的引用地址),这个指针指向堆内存 引用类型数据在栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存中堆内存中的对象
【基本数据类型和引用数据类型区别】
1、声明变量时内存分配不同
*原始类型:在栈中,因为占据空间是固定的,可以将他们存在较小的内存中-栈中,这样便于迅速查询变量的值。
*引用类型:存在堆中,栈中存储的变量,只是用来查找堆中的引用地址。这是因为:引用值的大小会改变,所以不能把它放在栈中,否则会降低变量查寻的速度。相反,放在变量的栈空间中的值是该对象存储在堆中的地址。地址的大小是固定的,所以把它存储在栈中对变量性能无任何负面影响
2、不同的内存分配带来不同的访问机制
在javascript中是不允许直接访问保存在堆内存中的对象的,所以在访问一个对象时,首先得到的是这个对象在堆内存中的地址, 然后再按照这个地址去获得这个对象中的值,这就是传说中的按引用访问。 而原始类型的值则是可以直接访问到的。
3、复制变量时的不同
1)原始值:在将一个保存着原始值的变量复制给另一个变量时,会将原始值的副本赋值给新变量,此后这两个变量是完全独立的,他们只是拥有相同的value而已。
2)引用值:在将一个保存着对象内存地址的变量复制给另一个变量时,会把这个内存地址赋值给新变量, 也就是说这两个变量都指向了堆内存中的同一个对象,他们中任何一个作出的改变都会反映在另一个身上。(这里要理解的一点就是,复制对象时并不会在堆内存中新生成一个一模一样的对象,只是多了一个保存在栈中指向这个对象指针的变量罢了)
什么是闭包?
①闭包(closure)是一种代码形式,内部函数访问外部函数的局部变量。
②在JS中,每当创建一个函数,闭包就会在函数创建的同时被创建出来,作为函数内部与外部连接起来的一座桥梁。
③举例:JS函数A里面有一个函数B,函数B访问了函数A里面定义的局部变量, 此时就产生了闭包。变量所在的函数就是闭包函数,这里A就是闭包函数。