专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

2020Web前端常见面试题及答案

ins518 2024-09-22 11:35:44 技术文章 16 ℃ 0 评论


问题:你对flex的理解?

解析:web应?有不同设备尺?和分辨率,这时需要响应式界?设计来满?复杂的布局需求,Flex弹性盒模型的优势在于开发?员只是声明布局应该具有的?为,?不需要给出具体的实现?式,浏览器负责完成实际布局,当布局涉及到不定宽度,分布对?的场景时,就要优先考虑弹性盒布局

问题:解释下变量提升?

解析:JavaScript引擎的?作?式是,先解析代码,获取所有被声明的变量,然后再????地运?。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。

console.log(a) // undefined

var a = 1

function b()

{ console.log(a

)

}

b() // 1

上?的代码实际执?顺序是这样的:

第?步: 引擎将 var a = 1 拆解为 var a = undefined 和 a = 1 ,并将 var a = undefined 放到最顶端, a = 1 还在原来的位置

这样?来代码就是这样:

var a = undefined

console.log(a) // undefined

a = 1

function b()

{ console.log(a

)

}

b() // 1

第?步就是执?,因此js引擎????从上往下执?就造成了当前的结果,这就叫变量提升。

问题:闭包是什么?

解析:MDN的解释:闭包是函数和声明该函数的词法环境的组合。

按照我的理解就是:闭包 =『函数』和『函数体内可访问的变量总和』

举个简单的例?:

(function() {

var a = 1;

function add() {

var b = 2

var sum = b + a

console.log(sum); // 3

}

add()

})()

add 函数本身,以及其内部可访问的变量,即 a = 1 ,这两个组合在?起就被称为闭包,仅此?已。

问题:闭包的作?有哪些?

解析:闭包最?的作?就是隐藏变量,闭包的??特性就是内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后

基于此特性,JavaScript可以实现私有变量、特权变量、储存变量等

我们就以私有变量举例,私有变量的实现?法很多,有靠约定的(变量名前加_),有靠Proxy代理的,也有靠Symbol这 种新数据类型的。

但是真正?泛流?的其实是使?闭包。

function

Person(){ var

name = 'cxk';

this.getName =

function(){ return name;

}

this.setName =

function(value){ name =

value;

}

}

const cxk = new Person()

console.log(cxk.getName()) //cxk

cxk.setName('jntm')

console.log(cxk.getName()) //jntm

函数体内的 var name = 'cxk' 只有 getName 和 setName 两个函数可以访问,外部?法访问,相对于将变量私有化。

本文收录了一些在Web前端开发面试中经常会遇到的面试题及答案,希望对大家有所帮助,若有所疏漏欢迎指正。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表