随笔分类 - 大厂面试
前端缓存
摘要:1. 前端缓存概述 前端缓存主要是分为HTTP缓存和浏览器缓存。其中HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务器代码上设置;而浏览器缓存则主要由前端开发在前端js上进行设置。下面会分别具体描述。 2. 前端缓存分类 2.1 HTTP缓存 整体流程:HTTP缓存都是从第二次请求开始的。第
阅读全文
MYSQL性能优化的最佳20+条经验
摘要:今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优
阅读全文
深拷贝与浅拷贝的区别,实现深拷贝的几种方法
摘要:如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。 此篇文章中也会简单阐述到栈堆,基本数据类型与引用数据类型,因为这些概念能更好的让你理解深拷贝与浅拷贝。 我们来举个浅拷贝例子: l
阅读全文
vue组件通信方式总结
摘要:对于vue来说,组件之间的消息传递是非常重要的,下面是我对组件之间消息传递的各种方式的总结,总共有8种方式。 1. props和$emit 父组件向子组件传递数据是通过prop传递的,子组件传递数据给父组件是通过$emit触发事件来做到的。 Vue.component('child',{ data(
阅读全文
http协商缓存VS强缓存
摘要:Web 缓存大致可以分为:数据库缓存、服务器端缓存(代理服务器缓存、CDN 缓存)、浏览器缓存。 浏览器缓存也包含很多内容: HTTP 缓存、indexDB、cookie、localstorage 等等。这里我们只讨论 HTTP 缓存相关内容。 之前一直对浏览器缓存只能描述一个大概,深层次的原理不能
阅读全文
CSS 实现隐藏滚动条同时又可以滚动
摘要:移动端页面为了更接近原生的体验,是否可以隐藏滚动条,同时又保证页面可以滚动? 使用 overflow:hidden 隐藏滚动条,但存在的问题是:页面或元素失去了滚动的特性。由于只需要兼容移动浏览器(Chrome 和 Safari),于是想到了自定义滚动条的伪对象选择器::-webkit-scroll
阅读全文
body中的onload()函数和jQuery中的document.ready()有什么区别?
摘要:1、我们可以在页面中使用多个document.ready(),但只能使用一次onload()。 2、document.ready()函数在页面DOM元素加载完以后就会被调用,而onload()函数则要在所有的关联资源(包括图像、音频)加载完毕后才会调用。
阅读全文
函数声明式与函数表达式的区别
摘要:1、函数声明中函数名是必须的,函数表达式中则是可选的。 2、 用函数声明定义的函数,函数可以在函数声明之前调用,而用函数表达式定义的函数则只能在声明之后调用。 ( 根本原因在于解析器对于这两种定义方式读取的顺序不同:解析器会实现读取函数声明,即函数声明放在任意位置都可以被调用;而对于函数表达式,解析
阅读全文
介绍一下闭包和闭包常用场景?
摘要:1. 作用域(受javascript链式作用域结构的影响,父级变量中无法访问到子级变量的值,为了解决这个问题,才使用的闭包。)闭包就是能够读取其他函数内部变量的函数。(在JS中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解为”定义在一个函数内部的函数”。无论是在事件中,for循环中,
阅读全文
BFC
摘要:1. BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域,(只有Block-level box参与,它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。) 2.BFC的布局规则有: 1.BFC就是在页面上的一个独
阅读全文