2018年前端口试题(秋季口试随便整顿的)

1.html和css

引入 css 有哪几种体式格局

1.运用<link>标签,引入外部CSS文件(1.经由过程@import,引入CSS文件(机能较差)
2.将css的款式代码放在html文档的<style></style>标签中,引入css)
3.内联款式(标签内部誊写)

position 属性有哪些值,离别什么寄义

1.position: relative;相对定位(相对于本身)
2.position: absolute;相对定位(相对于近来一个有定位的父元素偏移)
3.position: fixed;牢固定位(相对于浏览器窗口)
4.position:static:默认值   

css 相应式规划

1.接在link中推断装备的尺寸,然后援用差别的css文件(<link rel="stylesheet" type="text/css" href="styleB.css"  media="screen and (min-width: 600px) and (max-width: 800px)">)
2.直接写在<style>标签里(@media screen and (max-width: 600px) { /*当屏幕尺寸小于600px时,运用下面的CSS款式*/
  .class {
    background: #ccc;
  }
})

flex:1是什么意义

1.让一切弹性盒模子对象的子元素都有雷同的长度,且疏忽它们内部的内容

CSS 弹性规划,哪些地方用到过

1.flex规划

怎样完成不定宽高水平和垂直居中

1.最简朴的flex规划
display: flex;
justify-content: center;
align-items: center;
2.应用table-cell
外层容器
display:table-cell;
text-align:center;
vertical-align:middle;
内部元素
vertical-align:middle;
display:inline-block;
3.运用CSS3 transform
外层容器
display:relative
内部元素
transform: translate(-50%,-50%);
position: absolute;
top: 50%;
left: 50%;

什么是盒子模子

由content、padding、border、margin构成的元素就是盒子模子,用来设置元素在网页中的大小和位置。

2.js题目

const 和 let 区分,能够转变 const 定义的某个对象的属性吗

let与const都是只在声明地点的块级作用域内有效。
let:无变量提拔(未到let声明时,是没法接见该变量的)
const:无变量提拔,声明一个基础范例的时刻为常量,不可修正;声明对象能够修正
const arr = {name:'小可爱', age:'21'}
arr.name = '萱萱'
console.log(arr)
因为对象是援用范例的,arr中保留的仅是对象的指针,这就意味着,const仅保证指针不发生转变,修正对象的属性不会转变对象的指针,所以是被许可的。也就是说const定义的援用范例只需指针不发生转变,其他的不论怎样转变都是许可的。

《2018年前端口试题(秋季口试随便整顿的)》

对闭包的明白,以及哪些地方用过闭包,以及闭包的瑕玷

闭包 是指有权接见另一个函数作用域中的变量的函数,建立闭包的最常见的体式格局就是在一个函数内建立另一个函数,经由过程另一个函数接见这个函数的局部变量

1.函数嵌套函数
2.函数内部能够援用外部的参数和变量
3.参数和变量不会被渣滓接纳机制接纳

长处是能够防止全局变量的污染,变量和要领私有化,不让外部修正这些属性
瑕玷是闭包会常驻内存,会增大内存运用量,运用不当很轻易形成内存泄漏

对跨域相识吗,jsonp 的限定

跨域就是因为JavaScript同源战略的限定,使得a.com域名下的js没法操纵b.com或c.a.com域名下的对象或数据。简朴明白同一个 域名、雷同端口、雷同协定!
JSONP(JSON with Padding),就是异步要求跨域的服务器端时,不是直接返回数据,而是返回一个js要领,把数据作为参数
jsonp只支撑get要求而不支撑post要求
在登录模块中须要用到session来推断当前用户的登录状况,这时刻因为是跨域的缘由,前背景的取到的session是不一样的,那末就不
能就行session来推断.

1-10之间的随机数

var num=Math.floor(Math.random()*10+1);

javascript的typeof返回哪些数据范例

string,boolean,number,undefined,function,object

ES6 用到过吗,新增了哪些东西,你用到过什么

定义变量加入了 let const
箭头函数
Array.from() 将类数组对象与可遍历对象转换为数组
类class

箭头函数,箭头函数的特性,应该是 this 的指向

箭头函数是匿名函数,不绑定本身的this,arguments,super,new.target
箭头函数会捕捉其地点上下文的this值,作为本身的this值,在运用call/apply绑定时,相当于只是传入了参数,对this没有影响

相识 MVVM 吗,和 MVC 的区分

对象和类的区分,举个实际中的例子

你明白的面向对象

说一下原型链

ES6 新增的 set() 和 map() 有什么区分

数组去重

ES6:Array.from(new Set(arr));
<script type="text/javascript">
    let arr = ['1',2,1,3,5,6,5]
    let arrString = arr.toString()
    console.log(arrString)
    arrSplit = arr1.split(',') // 把一个字符串分割成字符串数组。
    //join() 把数组中的一切元素放入一个字符串。
    console.log(arrSplit)
    let set = new Set(arrSplit)
    console.log(set)
    let newArr = Array.from(set)
    console.log(newArr)
</script>

哪些要领会转变原数组

shift:将第一个元素删除而且返回删除元素,空即为undefined
unshift:向数组开首增加元素,并返回新的长度
pop:删除末了一个并返回删除的元素
push:向数组末端增加元素,并返回新的长度
reverse:倒置数组递次
sort:对数组排序
splice:splice(start,length,item)删,增,替代数组元素,返回被删除数组,无删除则不返回

深拷贝和浅拷贝

async 和 await 相识吗,(不太相识,只晓得返回的是 promsie 对象)
call() 和 apply() 的区分和作用?

区分:apply()与call()作用没有区分,用法与call()要领稍有区分,就是call()的第二个参数(挪用函数运用的参数),是一个一个传入的;而apply()的第二个参数的值是运用数组的情势传入的
作用:在Javascript中,每一个函数都包括两个非继续而来的要领,call和apply。这两个要领的用处都是在特定的作用域中挪用函数,实际上即是设置函数体内的this对象的值。

apply要领吸收两个参数,第一个参数是在个中运转函数的作用域,第二个是一个参数数组或许arguments对象。
call要领与apply要领作用雷同,第一个参数也雷同,区分在于,其他的参数须要逐一列出。

apply(thisArg, argArray);
call(thisArg[,arg1,arg2…]);

是运用call照样apply要看详细的状况。假如你晓得一切参数或许参数的数目不多,能够运用call;
假如参数的数目不确定,或许数目很大,或许你收到的是一个数组或许是个arguments对象,则须要运用apply。
    原文作者:何遇
    原文地址: https://segmentfault.com/a/1190000018305360
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞