var,let,const的区别
1.var 的声明会挂载到window上,而const,let不会。
2.var 存在变量提升,const,let不会。
3.let,const,形成块级作用域, var全局的。
4.const一旦声明必须赋值,且不能修改。
5.let,const在块级作用域内会形成暂时死区。
new的过程中做了什么
1.创建一个新对象。
2.将这个新对象的proto指向构造函数的prototype成员对象。
3.将构造函数的this指针指向指向这个新创建的对象。
4.执行构造函数中的代码。
5.返回新对象。
箭头函数有什么作用
1.简化了语法。
2.箭头函数的this是词法作用域。
3.不能用作构造函数,即new. 所以不存在prototype属性。
4.没有arguments的绑定。
this指向
1.全局环境中this指向全局环境。
2.元素绑定事件,函数中的this代表元素本身。
3.可以使用bind,call,apply来改变函数指向。
bind
Function.prototype.bind, f.bind()会创建与函数具有相同函数体与作用域的函数,但是这个新对象的this永远指向bind参数,无论他怎么被调用。
请简述 CommonJS,AMD,CMD,UMD 规范
js的基本数据类型
Array String Number undefined null
浏览器同源策略
协议,域名,端口,任何一个不同都不是同源。防止其他恶意请求修改页面。同源策略限制不同源的页面不能访问cookie,localstroage,indexedDB,不能访问dom,ajax请求不能发送,但有3个标签允许跨域: img,link,script
css重排与重绘
1.重排是指:浏览器计算出各自渲染对象的位置和尺寸大小,并将其安排在正确的位置上,重排也叫回流。
2.引起重排的(元素需要改变位置):浏览器窗口改变,元素大小位置发生改变,添加或删除元素等。
3.重绘:当页面中元素样式的改变并不会影响他所在位置时,浏览器会将样式赋予元素并重新绘制。
4.常见的引起重绘:color,text-decoration。
5.避免方式: 减少dom操作,用class属性,动画的话元素可以设置属性为absolute,不影响其他元素。
6.重排一定会重绘。
relative position相对谁定位
relative相对于自身所在的位置,absolute相对于离自己最近的父元素且position不为static的来定位的。
如何进行前端优化,说出5条
1.减少资源体积,css,js,image等静态资源的压缩,对css资源进行分割,异步路由加载。
2.减少http请求,雪碧图。
3.浏览器缓存
4.css放顶部,js放底部。
5.减少dom操作。
6.cdn
get 和post区别
| 请求方式 | 描述 |
|---|---|
| get | 请求指定地址的资源,并返回 |
| post | 向指定资源提交数据请求,数据被包含在请求体中 |
| head | 类似于get请求,只不过返回的数据中没有具体内容,只用于获取报头 |
| put | 从客户端向服务器传送的数据用于取代指定的文档内容 |
| DELETE | 从服务器删除资源 |
| TRACE | 回显服务器收到的请求,主要用于测试和诊断 |
| CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 |
| OPTIONS | 允许客户端查看服务器性能 |
1.get:请求的数据会附在url后面,以?分割url和传输数据,多个参数用&符号连接。
2.get有长度限制,post没有长度限制,post将数据装在请求体中。
3.get后退不会重新发请求,post会重新请求。
HttpOnly
防止恶意脚本盗取cookie
http状态码
304: 未修改,客户端本地缓存最新,使用即可
getOwnPropertyNames 和 hasOwnProperty Object.keys
getOwnPropertyNames:不可枚举属性 hasOwnProperty:可枚举属性
js数据类型
undefined null Number String Boolean object symbol
promise的方法all, race, allSettled any的区别
1.all 只有当所有状态都变为fulfilled时,会变为fulfilled,只要有一个变为rejected,p变为rejected。
2.race 只要有一个状态改变,p的状态就跟着改变。
3.allSettled 等到所有状态结束才返回,始终是fulfilled状态
4.any 只要有一个是fulfilled状态,实例就会变成fulfilled状态。
发布订阅模式
获取数据类型的几种方法
typeOf instanceof Object.prototype.toString.call()
闭包
闭包就是能够访问到函数内部变量的函数
bfc
布局规则
1.计算BFC高度时,浮动元素也参与计算
2.属于同一个BFC的两个box会发生margin重叠
doctype作用是什么
告诉浏览器的解析器用什么文档标准解析这个文档
三种模式的区别
1.标准模式:页面按照html和css的定义渲染。
2.怪异模式:会模拟更旧的浏览器行为。
3.近乎标准: 会实施一种表单元格尺寸的怪异行为,除此之外符合标准定义。
html xhtml xml的区别
html 非常混乱和松散,因为他在有标准之前就实现了。
xml主要用于数据存储和结构,但是json也可以达到相同的效果,并且更加轻量高效,所以xml市场越来越小了。
xhtml基于上面两者,为了解决html混乱问题,由此诞生了html5
对html语义化的理解
1.让页面具有良好的结构和语义,比如p标签代表段落,article代表文章。
2.语义类标签增强了可读性,便于开发和维护。
3.机器友好,更利于爬虫爬取有效信息,还可以支持读屏软件,自动生成目录。
html5与html4的不同之处
1.文档声明类型仅有一型:。
2.新的元素:section,video,progress,canvas,footer,header,mark,summary,audio,
canvas和svg区别
canvas
1.依赖分辨率。
2.不支持事件处理器。
3.弱的文本渲染能力。
4.能够以.png或.jpg格式保存图像。
5.适合图像密集型游戏,许多对象会被频繁重绘。
svg
1.不依赖分辨率。
2.支持事件处理器。
3.不适合游戏应用。
4.适用带有大型渲染区域的的应用程序。(谷歌地图)
meta作用
1.charset:用于描述html文档编码方式。
2.移动端: