这是最新的面试题

您所在的位置:网站首页 call指令和int指令区别 这是最新的面试题

这是最新的面试题

2023-05-19 07:59| 来源: 网络整理| 查看: 265

这是最新的面试题 说你对盒子模型的理解?如何让一个盒子水平垂直居中,有哪些方法越多越好?说说javascript都有哪些数据类型,如何存储的?如何理解响应式,实现响应式的方法有哪些?有什么区别?判断数据类型的方法有哪些?有什么区别?说说你对事件循环的理解?Bind,call,apply有什么区别?如何实现一个bind方法?如何理解闭包?闭包的应用场景是?说说你对同步和异步的区别的理解?Css选择器有哪些?优先级是什么?哪些属性可以继承?简单说一下什么是事件代理?如何理解重回和回流?什么场景下才能什么是防抖和节流,有什么区别?如何实现?说说你对作用域链的理解?说说你对原型和原型链的理解?Vue的生命周期和含义有哪些?Vue自定义指令的钩子函数有哪些?

说你对盒子模型的理解?

盒子模型是css中的一种思维模型,即把网页内容看成一个盒子,这个盒子由外到内包括margin、border、padding、content。根据浏览器计算方式不同分为两种模型:标准模型(w3c模型)和怪异模型(又称IE模型)。

他们的主要区别是:标准模型的宽度不包含padding和border,怪异模型的宽度包含padding和border(个人认为主要表现在内容区域的大小变化)。

默认情况下,box-sizing为content-box,也就是标准模型。可通过设置box-sizing的值为border-box准换为怪异模型。

如何让一个盒子水平垂直居中,有哪些方法越多越好? 说说javascript都有哪些数据类型,如何存储的?

js中的数据类型分类 JavaScript一共有8种数据类型,有7种基本数据类型(原始数据类型、简单数据类型)和1种引用数据类型(复杂数据类型)

基本数据类型:Undefined、Null、Boolean、Number、String、Symbol(es6新增,表示独一无二的值)和BigInt(es10新增); 引用数据类型:Object(Object本质上是由一组无序的名值对组成的),里面包含 function、Array、Date等。注意:JavaScript不支持任何创建自定义类型的机制,而所有值最终都将是上述 8 种数据类型之一。

基本数据类型:直接存储在栈(stack)中,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储。 引用数据类型:同时存储在栈(stack)和堆(heap)中,占据空间大、大小不固定。引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。

两种数据类型赋值方式的区别 1.基本类型赋值时,拷贝的是数据

2.应用类型赋值时,拷贝的是地址

如何理解响应式,实现响应式的方法有哪些?有什么区别? 判断数据类型的方法有哪些?有什么区别?

1.typeof 这个方法很常见,一般用来判断基本数据类型,如:string,number,boolean,symbol,bigint(es10新增一种基本数据类型bigint),undefined等。 typeof 目前能返回string,number,boolean,symbol,bigint,unfined,object,function这八种判断类型 2.instanceof 一般用来判断引用数据类型的判断,如:Object,Function,Array,Date,RegExp等 instanceof 主要的作用就是判断一个实例是否属于某种类型

3、Object.prototype.toString(这个是判断类型最准的方法) toString是Object原型对象上的一个方法,该方法默认返回其调用者的具体类型,更严格的讲,是 toString运行时this指向的对象类型, 返回的类型格式为[object,xxx],xxx是具体的数据类型,其中包括:String,Number,Boolean,Undefined,Null,Function,Date,Array,RegExp,Error,HTMLDocument,… 基本上所有对象的类型都可以通过这个方法获取到。

4.constructor 当一个函数F被定义时,JS引擎会为F添加prototype原型,然后再在prototype上添加一个constructor属性,并让其指向F的引用。如下所示:

说说你对事件循环的理解? Bind,call,apply有什么区别?如何实现一个bind方法? 如何理解闭包?闭包的应用场景是?

闭包的概念: 当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数的内部变量,

且返回的那个函数在外部被执行,就产生了闭包.

闭包的特性 1:函数套函数 2:内部函数可以直接访问外部函数的内部变量或参数 3:变量或参数不会被垃圾回收机制回收

5.闭包的优点 1:变量长期驻扎在内存中 2:避免全局变量的污染 3:私有成员的存在

.闭包应用场景 闭包解决索引值的问题 函数防抖 回调

说说你对同步和异步的区别的理解?

一、同步、异步的区别 同步,是所有的操作都做完,才返回给用户结果。即写完数据库之后,在相应用户,用户体验不好。

异步,不用等所有操作等做完,就相应用户请求。即先相应用户请求,然后慢慢去写数据库,用户体验较好。

同步: 同步的思想是:所有的操作都做完,才返回给用户。这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉)。这种情况下,用户不能关闭界面,如果关闭了,即迁移程序就中断了。

异步: 将用户请求放入消息队列,并反馈给用户,系统迁移程序已经启动,你可以关闭浏览器了。然后程序再慢慢地去写入数据库去。这就是异步。但是用户没有卡死的感觉,会告诉你,你的请求系统已经响应了。你可以关闭界面了。

Css选择器有哪些?优先级是什么?哪些属性可以继承? 简单说一下什么是事件代理? 如何理解重回和回流?什么场景下才能

回流:布局引擎会根据各种样式计算每个盒子在页面上的大小与位置。

重绘:当计算好盒模型的位置、大小及其他属性后,浏览器根据每个盒子特性进行绘制。

回流触发时机

添加或删除可见的DOM元素。

元素的位置发生变化。

元素的尺寸发生变化(包括外边距、内边框、边框大小、高度和宽度等)。

内容发生变化,比如文本变化或图片被另一个不同尺寸的图片所替代。

页面一开始渲染的时候(这避免不了)。

浏览器的窗口尺寸变化(因为回流是根据视口的大小来计算元素的位置和大小的)。

还有一些容易被忽略的操作:获取一些特定属性的值

offsetTop、offsetLeft、 offsetWidth、offsetHeight、scrollTop、scrollLeft、scrollWidth、scrollHeight、clientTop、clientLeft、clientWidth、clientHeight

这些属性有一个共性,就是需要通过即时计算得到。因此浏览器为了获取这些值,也会进行回流。

除此还包括 getComputedStyle 方法,原理是一样的。

重绘触发时机

颜色的修改

文本方向的修改

阴影的修改

避免回流、重绘的经验

如果想设定元素的样式,通过改变元素的 class 类名 (尽可能在 DOM 树的最里层)。

避免设置多项内联样式。

应用元素的动画,使用 position 属性的 fixed 值或 absolute 值(如前文示例所提)。

避免使用 table 布局,table 中每个元素的大小以及内容的改动,都会导致整个 table 的重新计算。

对于那些复杂的动画,对其设置 position: fixed/absolute,尽可能地使元素脱离文档流,从而减少对其他元素的影响。

使用css3硬件加速,可以让transform、opacity、filters这些动画不会引起回流重绘。

什么是防抖和节流,有什么区别?如何实现? 说说你对作用域链的理解?

当在Javascript中使用一个变量的时候,首先Javascript引擎会尝试在当前作用域下去寻找该变量,如果没找到,再到它的上层作用域寻找,以此类推直到找到该变量或是已经到了全局作用域

如果在全局作用域里仍然找不到该变量,它就会在全局范围内隐式声明该变量(非严格模式下)或是直接报错 变量的引用会顺着当前楼层进行查找,如果找不到,则会往上一层找,一旦到达顶层,查找的过程都会停止

说说你对原型和原型链的理解?

一、原型 原型是一个对象,是函数的一个属性prototype;

通过该函数实例化出来的对象都可以继承得到原型上的所有属性和方法 原型对象默认有一个属性constructor ,值为对应的构造函数;另外,有一个属性__proto__,值为Object.prototype

后文还有相关介绍!!!

二、原型链 概念:(1)对象的创建(2)对象的组织结构(3)对象访问成员的规定

在JavaScript中万物都是对象,对象和对象之间并不是独立存在的,对象和对象之间有一定关系。

通过对象__proto__属性指向函数的原型对象(函数.prototype)一层一层往上找,直到找到Object的原型对象(Object.prototype)为止,层层继承的链接结构叫做原型链(通过proto属性形成原型的链式结构,专业术语叫做原型链) Vue的生命周期和含义有哪些? Vue自定义指令的钩子函数有哪些?

指令对象中的钩子函数(五个): bind:只调用一次,指令第一次绑定到元素(还没有渲染到页面)时调用,比较常用。(自定义获取焦点无效)

inserted:元素渲染好了,插入到元素中。在表单获取焦点focus时使用。

update:当前元素渲染完成,绑定的值发生改变的时候触发。

componentUpdated:当前元素所在的区域全部渲染完成,绑定的额值发生改变时触发。

unbind:只调用一次,指令与元素解绑时调用。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3