-
let const var的区别,const定义的 对象是否可以修改?
答:let/const定义的变量不会出现变量提升,而var定义的变量会提升;
相同作用域中,let和const不能出现重复声明。而var可以;
const声明变量时必须设置初始值
const声明一个只读的常量,这个常量不可改变。
JS中,复杂数据类型,存储在栈中的是堆内存的地址,存在栈中的这个地址是不变的,但是存在堆中的值是可以变的。 -
js 原型的定义,原型链,继承
答: 每个对象都有一个原型proto ,这个原型还可以有它的原型,以此类推,就形成了原型链。查找特定属性时,先去该对象里去找,没有就查找他的原型对象,没有再往上找,就是原型链的说法了。
image.png
分清楚prototype和proto:
prototype是函数独有的属性,从一个函数指向一个对象。它的含义是函数(所有函数都可做构造函数)的原型对象,该属性是一个指针,指向一个对象,该对象的用途就是包含所有实例共享的属性和方法。
proto是原型链中查询实际用的,总是指向prototype,即指向构造函数的原型对象,是对象(构造函数实例化)独有的。 js中万物皆对象。
函数是对象构造的 对象也是函数构造的,俩者即是函数也是对象,所以为什么构造函数它是一个函数却返回一个对象,俩者是互相继承的关系;
JS继承: 构造函数继承(每次继承都把所有属性方法都拷贝一遍)、原型链继承(所有对象都公用原型属性方法,一个类修改会影响其他)、组合继承(构造函数方式继承属性,原型链方式继承方法)、原型式继承、寄生式继承、寄生组合式继承;
image.png
image.png
image.png
- js的基本数据类型 :
答: string、number、boolean、null、undefined(5种), 一种复杂数据类型Object,比如Object、array、function、data等。
5.事件委托(target,currenttarget)
答:事件委托就是利用冒泡原理,将事件加到父元素或祖先元素上,触发执行效果。
target 和currenttarget的区别:currentTarget指的是事件触发后,冒泡到绑定处理程序的元素,就是绑定事件处理程序的元素,target指的是触发事件的元素。
6.new 操作符之后的操作
答: new操作符创建了一个空对象,这个对象的proto(原型)指向构造函数的prototype,执行构造函数后返回这个对象。
7.防抖,节流
答:用户在进行某些操作后向服务端要一些数据,但某些事件的触发很频繁,需要不会频繁地去触发回调函数,而是在一定时间内只触发一次。
防抖:在一定时间内,回调函数只执行一次,期间有事件触发,则重新计时: function debounce(timeout, fn)
节流:在一定时间内,回调函数只执行一次。
8.跨域访问
9.this指向问题
- .bind(object).bind(windows)后this的指向?
11.promise的介绍,怎么用promise,怎么实现一个promise
- es6新特性(箭头函数)
13.async是什么样的语法糖,generator怎么用?
14.ajax有哪些状态,每个状态分别对应什么?
- 手动实现一个ajax,这样的实现方法叫什么?
16.介绍webpack, webpack有哪些配置,loader和plugin有什么区别?
- 同源是什么意思?
18.介绍CSS盒模型
答:CSS盒模型分为标准盒模型和IE盒模型;
标准盒模型(content-box):width=content;
IE 盒模型(border-box): width=content+padding+border
19.bfc是什么,怎么形成bfc,bfc有什么用?
20.实现一个垂直水平居中?
*定位(position:absolute 利用top,left放到水平居中)+margin-left;
*定位(absolute,四方向偏移量为零)+ margin:auto
*使用transform:translate(-50%,-50%)方案(存在兼容性)
*flexbox(justify-content,align-items), 存在兼容性问题
*display: table-cell(text-align, vertical-align) 无兼容性问题
21.animation的参数,怎样实现一个动画?
22.react???
23.项目前端怎么优化(问项目)
- ts的泛型是什么作用?对ts的理解?
25.async await和promise的关系?
26.采用flex布局,固定高度,左边定宽,右边自适应?
27.如果子元素不能100%继承高度,怎么实现撑满?
28.前端模块化? commonjs 和es6的moudle?
29.websoket需要轮询吗?
答:websoket基于tcp协议,只需要服务端和客户端一次握手,允许服务端主动发送数据,不需要轮询。
- DOM树有多少种节点格式:
答:Element类型(元素节点)、Text类型(文本节点)、Comment类型(注释节点)、Document类型(document节点)
ps:document可以说是一种节点格式,但是节点数的根节点也叫document。
31.DOM事件流:
答:DOM事件流包括三个阶段:事件捕获阶段(从根节点往回传播直到目标节点,沿着DOM树向下传播)、处于目标阶段(到达目标节点)、事件冒泡阶段(从元素触发,一层一层向上传递直到根节点,沿着DOM树)
IE支持事件冒泡,Firefox支持事件冒泡和事件捕获。











网友评论