![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
文章平均质量分 50
前端_酒館
努力打造原创,把知识变为自己的,而不是借别人的 ----简书和CSDN同步
展开
-
js 对象key值下划线转为驼峰
场景:后端返回的数据为下划线分割格式,但前端的规范为驼峰格式,实现一种数据格式转换的方法,将数据的key按如下形式转换,要求:a.炫耀处理多层嵌套的情况b.特定名词需要全部大写,特定名词包括:url, id后端返回数据格式let data = { user_name: 'name1', user_id: 1000, age: 10, detail: { user_avatar_url: 'xxx', object_o原创 2021-10-16 21:56:02 · 1749 阅读 · 0 评论 -
JavaScript null 是不是对象?为什么?
null 不是对象。typeof null会输出object,但这是 JS 存在的一个悠久 Bug。在 JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息,000开头代表是对象,然而null表示为全零,所以将它错误的判断为object。虽然现在的内部类型判断代码已经改变了,但是对于这个 Bug 却是一直流传下来。...原创 2021-05-27 17:36:36 · 515 阅读 · 2 评论 -
MVVM 和 MVC 区别?它和其它框架(如 jQuery)的区别是什么?适合哪些场景?
MVVM 和 MVC 区别?mvc: Model-View- Controller (单向通信-模型-视图-控制器)View跟Model,必须通过Controller来承上启下mvvm: Model-View-ViewModel (数据的双向绑定-模型-视图-视图模型)数据绑定将模型(Model)转化成视图(View),即将后端传递的数据转化成所看到的页面;DOM 事件监听将视图(View)转化成模型(Model),即将所看到的页面转化成后端的数据。mvvm主要解决了mvc中大量的D原创 2021-05-27 17:23:37 · 959 阅读 · 0 评论 -
HTML5和CSS3新增内容
CSS3选择器有哪些?属性选择器、伪类选择器、伪元素选择器。CSS3新特性有哪些?颜色:新增RGBA,HSLA模式文本效果text-align-last 设置如何对齐最后一行或紧挨着强制换行符之前的行。text-emphasis 向元素的文本应用重点标记以及重点标记的前景色。text-justify 规定当 text-align 设置为 “justify” 时所使用的对齐方法。text-outline 规定文本的轮廓。text-overflow 规定当文本溢出包含元素时发生的事原创 2021-05-27 16:40:33 · 194 阅读 · 0 评论 -
class与原形链实现继承
原型链继承:(寄生组合式继承) 在ES6的class语法推出之前,要实现类的继承要通过修改原型链来实现。核心: 子类的构造函数通过People.call(this)继承父类的属性,改变子类的原型为new People() 来继承父类的函数。寄生组合式继承: 通过 Object.create() 将子类的原型继承到父类的原型上,它的高效率体现只调用了一次父类构造函数,并且因此避免了在父类的prototype 上面创建不必要的、多余的属性。同时,原型链还能保持不变,可以正常使用 instanceof 和原创 2021-05-21 10:58:12 · 218 阅读 · 0 评论 -
深入理解bind/call/apply以及手写
bind/call/apply都是用来重新定义(改变)函数内部的this指向。例子: 菜鸟的例子更加清晰var year = 2021function getDate(month, day) { return this.year + '-' + month + '-' + day}let obj = {year: 2022}getDate.call(null, 3, 8) //2021-3-8getDate.call(obj, 3, 8) //2022-3-8getDate原创 2021-05-21 10:11:24 · 145 阅读 · 0 评论 -
cookie与session
cookie保存在客户端(浏览器);优点:极高的扩展性和可用性;通过良好的编程,控制保存在cookie中的session对象的大小;通过加密和安全传输技术(SSL),减少cookie被破解的可能性;只在cookie中存放不敏感数据,即使被盗也不会有重大损失。控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。缺点:cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉;安.原创 2021-05-20 16:49:55 · 74 阅读 · 0 评论 -
浏览器渲染机制触发重排和重绘
什么是Doctype及作用?DTD(document type definition,文档类型定义)是一系列的语法规则,用来定义XML或(X)HTML的文件类型。浏览器会使用它来判断文档类型,决定使用何种协议来解析,以及切换浏览器模式;DOCTYPE是用来声明文档类型和DTD规范的,一个主要的用途便是文件的合法性验证。如果文件代码不合法,那么浏览器解析时便会出一些差错;HTML4.01 有个严格模式和传统模式。浏览器渲染过程?构建DOM树(DOM tree):从上到下解析HTML文档生原创 2021-05-20 16:27:50 · 293 阅读 · 0 评论 -
原型链
原型链: 是整个面向对象的基础创建对象有几种方法:var o1 = {name:'o1'}var o11 = new Object({name:'o11'});var M = function(){this.name = 'o2'};var o2 = new M()var P = {name:'o3'};var o3 = Object.create(P)原型、构造函数、实例、原型链:(这块的演示可以用M来进行演示一波原型、构造函数、实例之间的关系)在控制台输入o2(实例)、原创 2021-05-20 16:17:59 · 59 阅读 · 0 评论 -
解决跨域
JSONP: 利用script标签立即下载并执行的特性,就可以在回调函数中拿到返回来的数据。// 1.回调函数function handleResponse(data){ console.log(data);}// 2.动态创建 script var script = document.createElement('script');script.src = 'http://test.com/json?callback=handleResponse';document.body.i.原创 2021-05-20 16:09:15 · 60 阅读 · 0 评论 -
HTTP协议
HTTP协议的主要特点:简单快速:客户向服务器请求服务时,只需传送请求方法和路径灵活:HTTP允许传输任意类型的数据对象无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。HTTPS和HTTP原创 2021-05-20 15:23:12 · 182 阅读 · 0 评论 -
TCP连接建立
TCP: 一种面向来连接的、可靠的、基于字节流的传输层通信协议。面向连接: 数据在发送之前必须在两端建立连接,方法就是我们熟知的三次握手连接。可靠传输: 通过多种机制来保证数据的正确传输,比如序列号/确认应答机制、检验和机制、超时重传机制、流量控制、拥塞避免机制等。基于字节流: 虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也原创 2021-05-20 14:41:18 · 3127 阅读 · 0 评论 -
DNS域名解析
域名解析过程:检查浏览器是否有对应的域名与ip地址缓存,有的话解析结束;没有检查本地操作系统是否有对应的域名和ip地址缓存,有的话解析结束,否则继续。主机向本地DNS服务器(LDNS)发起递归查询,如果LDNS中有对应的域名的ip地址缓存,LDNS把结果返回给主机,解析结束,否则继续。本地DNS服务器向根域名服务器发起迭代查询:根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址本地DNS服务器向顶级域名服务器(如.com .cn)进行查询,顶级域名服务器告诉本地域名服原创 2021-05-20 14:10:33 · 119 阅读 · 0 评论 -
http缓存和浏览器缓存
缓存是性能优化中简单高效的一种优化方式,优秀的缓存策略可以缩短网页请求资源的距离、减少延迟、减少宽带(缓存可重复利用)、降低网络负荷(缓存可重复利用)HTTP缓存详细的文章:一文读懂http缓存(超详细)前端缓存篇一 (HTTP缓存)浏览器缓存当浏览器请求一个网站的时候,会加载各种各样的资源,比如:HTML文档、图片、CSS和JS等文件。对于一些不经常变的内容,浏览器会将他们保存在本地的文件中,下次访问相同网站的时候,直接加载这些资源,加速访问。这些被浏览器保存的文件就被称为缓存(..原创 2021-05-20 11:32:38 · 2398 阅读 · 0 评论 -
重定向
HTTP重定向DNS重定向任播寻址IP MAC转发IP地址转发js中实现重定向的几种方式window.location.href="https://blog.csdn.net/weixin_38031256?spm=1001.2101.3001.5343";window.history.back(-1);window.navigate("https://blog.csdn.net/weixin_38031256?spm=1001.2101.3001.5343");...原创 2021-05-20 10:37:58 · 78 阅读 · 0 评论 -
HTTP头
HTTP 头的组成:通用头、请求头、响应头、实体头。通用头:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。请求头:允许客户端传递关于自身的信息和希望的响应形式。响应头:服务器和于传递自身信息的响应。实体头:定义被传送资源的信息。即可用于请求,也可用于响应。HTTP请求头类型:Accept:浏览器可接受的MIME类型。Accept-Charset:浏览器可接受...原创 2019-12-11 16:12:52 · 255 阅读 · 0 评论 -
HTTP和HTTPS原理和区别
HTTP和hHTTPS原创 2019-12-11 16:28:59 · 576 阅读 · 0 评论 -
js数组打乱顺序
网上有很多数组排序的,但是我觉得没必要那么复杂,搞个最优的,然后描述清楚让大家理解明白就好了,还写什么sort()啥的,瞎鸡儿玩!!!/** * 打乱数组顺序 * @param arr * @returns {*} * */ randomArr(arr){ let length= arr.length; //while执行至条件不成立则跳出循环 whi...原创 2019-12-24 11:26:57 · 674 阅读 · 0 评论 -
见过却不一定了解过的前端面试题-BFC
BFC块级格式化上下文(Block Formatting Context)。什么叫块级格式化上下文? 在块盒子布局过程中,使用以下css属性进行布局所产生的的区域就是块级格式化上下文*。根元素(<html>)浮动元素(元素的 float 不是 none)绝对定位元素(元素的 positi...原创 2019-12-17 17:33:59 · 168 阅读 · 0 评论 -
从输入URL到页面加载发生了什么?
网上有很多这方面的文章,但是那毕竟是别人的不是自己的,因此我着手写了《从输入URL到页面加载发生了什么?》这篇文章从而引出TCP的三次握手和四次挥手、http协议、页面渲染发生的重绘和重排、DNS缓存等重要的js基础。从输入URL到页面加载到底发生了什么呢?总体来说,大体分为两部分: 网络通信和页面渲染网络通信网络通信又细分为以下几个过程:1、DNS解析:DNS解析一般指域名解...原创 2019-12-30 11:49:22 · 116 阅读 · 0 评论 -
常见的浏览器内核
常见的浏览器内核可以分四种:Trident、Gecko、Blink、Webkit主流浏览器及其内核:IE浏览器 =>Trident内核,也成为IE内核;Chrome浏览器=>Webkit内核,现在是Blink内核;Firefox浏览器=>Gecko内核,俗称Firefox内核;Safari浏览器=> Webkit内核;Opera浏览器=>最初是自己的Presto内核,后来加入谷歌大军,从Webkit又到了Blink内核;360浏览器=>IE+Chrome双原创 2021-04-12 16:12:54 · 308 阅读 · 0 评论 -
假设高度已知,请写出三栏布局,其中左栏和右栏宽度各为300px,中间自适应
<section class="layout float"> <style media="screen"> .layout.float .left { float: left; width: 300px; background: red; } .layout.float .right { float: right;原创 2021-04-12 16:20:41 · 106 阅读 · 0 评论 -
谈一下Ajax的认识?
什么是ajax?AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网页开发技术。Ajax包含下列技术:基于web标准(standards-basedpresentation)XHTML+CSS的表示;使用 DOM(Document ObjectModel)进行动态显示及交互;使用 XML 和 XSLT 进行数据交换及相关操作;使用 XMLHttpRequest 进行异步数据查询、检索;使用 JavaScript 将所有的东西绑定原创 2021-04-12 16:44:07 · 1048 阅读 · 0 评论 -
BFC(边距重叠解决方案)
BFC基本概念:块级格式化上下文。BFC的原理:在BFC这个元素的垂直方向的边距发生重叠;BFC的区域不会与浮动元素的box重叠,用来清除浮动;BFC在页面上是一个独立的容器,不受外部元素影响,也不影响外部元素;计算BFC高度的时候浮动元素也会参与计算。如何创建BFC? overflow: hidden/auto float: none position的值不是relative,static display:inline-block/table-cell 和tabl原创 2021-04-12 16:08:47 · 321 阅读 · 0 评论