一、变量作用域分为:
全局变量和局部变量(函数作用域变量),所以FOR/IF没有自己变量域。——》闭包
二、变量提升
var a = 10;
(function(){
console.log(a);
var a = 100;
})();
输出:undefined,原因变量提升。(先声明变量)
var a = 10;
(function(){
var a;
console.log(a);
a = 100;
})();
三、instanceof和typeof
instanceof:
instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。
语法:object instanceof constructor
参数:object(要检测的对象.)constructor(某个构造函数)
typeof:
typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。
它返回值是一个字符串,该字符串说明运算数的类型。(typeof 运算符返回一个用来表示表达式的数据类型的字符串。 )
typeof其实就是判断参数是什么类型的实例,就一个参数
typeof 一般只能返回如下几个结果:“number”、“string”、“boolean”、“object”、“function” 和 “undefined”。**
四、get和post区别
五、vue的生命周期:
create、mounttd、update、destroy
1、beforecreate :
完成实例初始化,初始化非响应式变量
this指向创建的实例;
可以在这加个loading事件;
data computed watch methods上的方法和数据均不能访问
2、created
实例创建完成
完成数据(data props computed)的初始化 导入依赖项。
可访问data computed watch methods上的方法和数据
未挂载DOM,不能访问
e
l
,
el,
el,ref为空数组
可在这结束loading,还做一些初始化,实现函数自执行,
可以对data数据进行操作,可进行一些请求,请求不易过多,避免白屏时间太长。
若在此阶段进行的 DOM 操作一定要放在 Vue.nextTick() 的回调函数中
3、berofeMount
有了el,编译了template|/outerHTML
能找到对应的template,并编译成render函数
4、mounted
完成创建vm.
e
l
,
和
双
向
绑
定
,
完
成
挂
载
D
O
M
和
渲
染
;
可
在
m
o
u
n
t
e
d
钩
子
对
挂
载
的
d
o
m
进
行
操
作
即
有
了
D
O
M
且
完
成
了
双
向
绑
定
可
访
问
D
O
M
节
点
,
el,和双向绑定, 完成挂载DOM 和渲染;可在mounted钩子对挂载的dom进行操作 即有了DOM 且完成了双向绑定 可访问DOM节点,
el,和双向绑定,完成挂载DOM和渲染;可在mounted钩子对挂载的dom进行操作即有了DOM且完成了双向绑定可访问DOM节点,ref
可在这发起后端请求,拿回数据,配合路由钩子做一些事情;
可对DOM 进行操作
六、常见的http状态码
七、行内元素
行内非替换元素,(置换元素就是会根据标签属性来显示的元素。反之就是非置换元素了。)例如, height/width/padding top、bottom/margin top、bottom均无效果。只能用padding left、right和margin left、right改变宽度。
八、localStorage、cookie、session
1、存储位置不同
cookie的数据信息存放在客户端浏览器上。
session的数据信息存放在服务器上。
2、跨域支持上不同
cookie支持跨域名访问。
session不支持跨域名访问。
八、HTML5
(1)HTML5 中的一些有趣的新特性:
用于绘画的 canvas 元素
用于媒介回放的 video 和 audio 元素
对本地离线存储的更好的支持
新的特殊内容元素,比如 article、footer、header、nav、section
新的表单控件,比如 calendar、date、time、email、url、search
九、数组原始方法总结
join() //将数组以指定分隔符转换成字符串,原始数组不变
push()和pop() //弹出、进入——尾巴,返回元素,原始数组变
shift() 和 unshift() //弹出进入——头部,返回元素,原始数组改变
sort()
reverse() //数组反过来,原始数组改变
concat() //添加一个新的数组,可以复制原始数组,元素数组不改变
slice() //包括开始,不包括结尾,原始数组不改变
splice() //对原始数组增删改,原始数组改变**,index、howlong、item**
includes(item) //判断是否有item,返回true或者false
indexOf()和 lastIndexOf() (ES5新增) //查找的项,开始的位置,没有放回-1
forEach() (ES5新增)//遍历数组,没有返回值,item、index、arr
map() (ES5新增)//“映射”,对数组中的每项运行给定函数,返回每次函数调用的结果组成的数组。
filter() (ES5新增)//“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
every() (ES5新增)//判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。
some() (ES5新增)//判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
reduce()和 reduceRight() (ES5新增)//这两个方法都会实现迭代数组的所有项,然后构建一个最终返回的值。:前一个值、当前值、项的索引和数组对象。
find() ES6**//查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素。**
(
字符串常见函数:https://www.runoob.com/jsref/jsref-obj-string.html
)
十、W3C和IE盒子的总宽度
标准W3C模型:宽度 = margin2 + border2 + padding2 + width
IE模型: 宽度 = margin2 + width
十一、请求方式
1 GET 请求指定的页面信息,并返回实体主体。
2 HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包4 4 含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
5 PUT 从客户端向服务器传送的数据取代指定的文档的内容。
6 DELETE 请求服务器删除指定的页面。
7 CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
8 OPTIONS 允许客户端查看服务器的性能。
9 TRACE 回显服务器收到的请求,主要用于测试或诊断。
十二、for in / for of
for…in…能对象和数组(for…in…还会遍历原型上的属性,如果要使得不便利,可以通过hasOwnproperty,判断是否为自定义属性),for…of…不能遍历对象,如果要使for…of…遍历对象可以通过以下办法:
for(var i of obj.Object.keys(obj)){
console.log(obj[i]);
}
十三、事件循环机制(event loop)
1、一种解决javaScript单线程运行时不会阻塞的一种机制,也就是我们经常使用异步的原理。
2、宏队列:
macrotask,也叫tasks。 一些异步任务的回调会依次进入macro task queue,等待后续被调用,这些异步任务包括:
setTimeout、setInterval
3、微队列:
microtask,也叫jobs。 另一些异步任务的回调会依次进入micro task queue,等待后续被调用,这些异步任务包括:
Promise
十四、v-for中的key作用
加了key(一定要具有唯一性) id的checkbox跟内容进行了一个关联。是我们想达到的效果