2018年前端面试题(秋季面试随意整理的)

news/2023/12/9 17:42:10 标签: 面试, javascript, json

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定义的引用类型只要指针不发生改变,其他的不论如何改变都是允许的。

图片描述

对闭包的理解,以及哪些地方用过闭包,以及闭包的缺点
闭包 是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量

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。

http://www.niftyadmin.cn/n/1439471.html

相关文章

localStorage应用(写的时间缓存在本地浏览器)

最近用了下localStorage&#xff0c;于是想记录加深下映象&#xff1b; 有关更详细的介绍&#xff0c;可以去看https://www.cnblogs.com/st-le...&#xff1b; 我这引用了这个博客的优势介绍&#xff1a;大家可以了解下 一、什么是localStorage、sessionStorage 在HTML5中&…

我们究竟应不应该使用框架?

AxonIQ商业主管及Axon框架布道师Frans van Buul近日在其博客中发表了一篇关于框架和类库孰优孰劣的文章&#xff0c;引起了人们的热议。虽然很多人提倡类库反对框架&#xff0c;但Frans仍然提出了一些倾向于框架的见解&#xff0c;详细内容请见正文。AxonIQ商业主管及Axon框架布…

Mysql索引详解及优化(key和index区别)

更多内容请访问 www.uusystem.com MySQL索引的概念 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分)&#xff0c;它们包含着对数据表里所有记录的引用指针。更通俗的说&#xff0c;数据库索引好比是一本书前面的目录&#xff0c;能加快数据库的查询速度。…

Vue插件从封装到发布

插件的分类 添加全局的方法或者属性 比如&#xff1a;vue-element添加全局的资源 比如&#xff1a;指令 v-bind通过mixin方法添加的一些混合添加Vue实例方法 Vue.prototype上面插件的使用 通过全局方法 Vue.use() 使用插件。它需要在你调用 new Vue() 启动应用之前完成&#xf…

迁云工具版本更新(1.3.2.5)

信息摘要&#xff1a; 迁云工具版本更新至1.3.2.5&#xff0c;优化若干问题适用客户&#xff1a; P2V&#xff0c;V2V服务器迁移客户版本/规格功能&#xff1a; 1.优化Http访问超时设置&#xff1b; 2.优化Windows 还原检查功能&#xff1b; 3.优化进度显示&#xff1b; 4.修复…

大数据,多大算“大

在数据“泛滥”的今天&#xff0c;人人都在提“大数据”&#xff0c;但多大的数据才算“大”呢&#xff1f;如果盲目的强调“大”&#xff0c;结果只会被数据淹没&#xff0c;从而导致信息过量&#xff0c;最终对决策不仅没有帮助反而使人困惑、不知所措。今天&#xff0c;我们…

android 通过原生api(不需要opencv和第三方sdk)实现Camera人脸检测

为什么80%的码农都做不了架构师&#xff1f;>>> 支持技术分享&#xff0c;转载或复制&#xff0c;请指出文章来源 此博客作者为Jack__0023 1、背景 最近甲方提出个东西&#xff0c;希望能够检测到是否有人观看过我们投放的内容&#xff0c;那么这种的话&#xff0c…

Java 复习

基本知识点 文件名必须和类型一致&#xff0c;类名首字母要大写&#xff0c;例如&#xff1a;MyClass注释-Commonts Java 注释&#xff08;Java Comments&#xff09;&#xff0c;单行注释 //&#xff0c;在 // 至当前行行位之间的内容&#xff0c;都会被忽略多行注释&#xff…

Markdon 作图语法 CSDN

插入甘特图 gantt dateFormat YYYY-MM-DD title Adding GANTT diagram functionality to mermaid section 现有任务 已完成 :done, des1, 2014-01-06,2014-01-08 进行中 :active, des2, 2014-01-09, 3d 计划中 : des3, after des2, 5d 插入UML图 sequenceDiagram 张三 ->>…

引用类型 —— Object类型

壹、创建Object实例&#xff1a; 一&#xff1a; var person new Object(); person.name " 小明 " ; person.age 23; 二&#xff1a;对象字面量表示法&#xff1a; 在通过对象字面量定义对象时&#xff0c;实际上不会调用Object构造函数 var person { name: &quo…

vscode 开发Vue配置

vscode 下载地址&#xff1a; vscode https://marketplace.visualstudio.com/VSCode vscode 插件支持 https://www.jianshu.com/p/e82... 配置 ESLint &#xff08;需安装 Prettier - Code formatter 插件&#xff09; 打开用户设置文件 // vscode默认启用了根据文件类型自动设…

换芯后的 Edge 浏览器 UI 首曝光,还是熟悉的味道?

百度智能云域名服务&#xff0c;.com新用户首购仅需25元 开源中国此前报道过&#xff0c;微软计划在今年推出基于 Chromium 的新版 Edge 浏览器。 昨天&#xff0c;外媒 Neowin 公布了关于这款览器的最新截图&#xff0c;还表示目前 Edge 浏览器包含两个开发分支&#xff0c;…

360首席安全官谭晓生宣布离职

3月5日晚&#xff0c;360发布公告称&#xff0c;公司董事会于近日收到公司副总经理谭晓生先生递交的书面辞职报告。谭晓生先生因个人原因辞去公司副总经理职务&#xff0c;相关辞职报告自送达董事会之日起生效。谭晓生先生在公司的工作职责已进行交接&#xff0c;其辞职不会影响…

当移动数据分析需求遇到Quick BI

2019独角兽企业重金招聘Python工程师标准>>> 我叫洞幺&#xff0c;是一名大型婚恋网站“我在这等你”的资深老员工&#xff0c;虽然在公司五六年&#xff0c;还在一线搬砖。“我在这等你”成立15年&#xff0c;目前积累注册用户高达2亿多&#xff0c;在我们网站成功…

shell 的echo和 printf

shell的echo指令是输出语句 就好比Python的print 在显示字符串的时候可以省略双引号 但是最好还是带上 echo Ti is a dashaobingecho Ti is a dashaobing这两个的输出的结果是一样的 2.显示转义字符 echo " \"IT is a dsb\"" 结果是&#xff1a; &quo…

隐藏手机号操作

oracle&#xff1a;select user_name, substr(mobile,1,3)||*****||substr(mobile,-3,4) from t_cust_user mysql&#xff1a;select user_name, concat(left(mobile,3),*****,right(mobile,3)) from t_cust_user转载于:https://www.cnblogs.com/yikuan-919/p/10501738.html
最新文章