随笔分类 -  面试

统计字符串中出现的字母
摘要:统计字符串中出现的字母 let str = "aabbabbbcchhddfgh"; let obj = {}; for(var v of str){ if(obj[v]&&obj[v].value == v){ obj[v].count = ++obj[v].count; }else{ obj[v 阅读全文

posted @ 2021-04-15 17:28 zhishiyv 编辑

面试时如何自我介绍
该文被密码保护。

posted @ 2021-04-14 13:45 zhishiyv 编辑

重排和重绘
摘要:重排和重绘 每个页面至少在初始化的时候会有一次重排操作,任何对渲染树的修改,都可能引发重排或者重绘。 重排: 当渲染树中一部分,因为元素的规模尺寸,布局,隐藏等改变而需要重新构建,这就称为回流,每个页面至少需要一次回流,就是在页面第一次加载的时候。 重绘(repaint): 当盒子的位置、大小以及其 阅读全文

posted @ 2021-04-12 15:11 zhishiyv 编辑

浏览器渲染页面
摘要:1、浏览器解析HTML源码,然后创建一个DOM树。 在DOM树中,每一个HTML标签都有一个对应的节点,而且每一个文本也都有一个对应的文本节点。DOM树的根节点就是documentElement,对应的是html标签。 2、浏览器解析CSS代码,计算出最终的样式数据。 3、构造出DOM树,计算出样式 阅读全文

posted @ 2021-04-12 10:20 zhishiyv 编辑

递归求1-100之和
摘要:递归求1-100之和 /* *求1-100之和 */ function sum(num1, num2) { var num = num1 + num2; if (num2 + 1 > 100) { return num; } else { return sum(num, num2 + 1) } } 阅读全文

posted @ 2021-04-09 18:00 zhishiyv 编辑

数组去重
摘要:数组去重 /** * sufeng * 另外开辟一个数组,将原数组中的每个不存在的元素存入到新数组中 */ var sourceArray = [1,2,2,2,3,3,3,4,5,6], testArray = []; for(var i=0;i<sourceArray.length;i++){ 阅读全文

posted @ 2021-04-08 15:02 zhishiyv 编辑

get、post请求
摘要:get、post的区别 1、get传参方式是通过地址栏URL传递,把请求数据在URL通过 “?”和“&”进行参数分割。post传参方式参数URL不可见,存放在HTTP的包体内。 2、get传递数据是通过URL进行传递,对传递的数据是受URL大小的限制,URL最大长度是2048个字节,post没有长度 阅读全文

posted @ 2021-04-08 14:52 zhishiyv 编辑

实现JS数据拷贝
摘要:实现JS数据拷贝 实现一个函数 clone ,可以对JavaScript 中的 5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。 function clone(obj) { var o; switch(typeof obj){ case "u 阅读全文

posted @ 2021-04-08 10:01 zhishiyv 编辑

charCodeAt() 方法
摘要:charCodeAt() 来获得字符串中某个具体字符的 Unicode 编码 返回字符串中指定位置的字符的 Unicode 编码 let str = "sufeng"; for (let i = 0; i < str.length; i++) { console.log(str.charCodeAt 阅读全文

posted @ 2021-04-08 09:42 zhishiyv 编辑

indexOf 实例
摘要:indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 value:必需,规定需检索的字符串值。可选的整数参数。 index:规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。 ind 阅读全文

posted @ 2021-04-08 09:21 zhishiyv 编辑

DOM事件流
摘要:DOM事件流 同时支持两种事件模型,捕获型事件和冒泡型,但是捕获型事件先发生,两种事件流会触及DOM中所有对象,从document对象开始,也在document对象结束。 添加事件 W3C标准的浏览器在添加事件时用addEventListener(event, fn, useCapture)方法,其 阅读全文

posted @ 2021-04-07 14:15 zhishiyv 编辑

宏任务和微任务
摘要:宏任务和微任务 微任务 microtask称为jobs, 宏任务 macrotask称为task, 宏任务是由宿主发起的,而微任务由JavaScript自身发起。 常见的面试题: console.log('start') setTimeout(()=>{ console.log('setTimeou 阅读全文

posted @ 2021-04-07 10:29 zhishiyv 编辑

事件代理
摘要:事件委托是指将事件绑定到目标元素的父元素上,利用冒泡机制触发该事件 ulEl.addEventListener('click', function(e){ var target = event.target || event.srcElement; if(!!target&&target.nodeN 阅读全文

posted @ 2021-04-06 17:10 zhishiyv 编辑

外部引用CSS
摘要:link和@import 外部css导入方式一 <html> <head> <title>css导入</title> <link rel="stylesheet" type="text/css" href="../../xxx.css"> </head> <body> </body> </html> 阅读全文

posted @ 2021-04-02 15:23 zhishiyv 编辑

优雅降级和渐进增强
摘要:渐进增强 progressive enhancement: 针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果,交互等改进,以达到更 好的用户体验。渐进增强是从一个非常基础的,能够起作用的下一个版本开始,并不断扩充,以适应未来环境的需要。 优雅降级 graceful deg 阅读全文

posted @ 2021-03-30 19:39 zhishiyv 编辑

盒子模型
摘要:什么是盒子模型? 在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容content、元素的内边距padding、元素 的边框border、元素的外边距margin四个部分。 元素的宽度和高度 当指定一个css元素的宽度和高度属性时,只是设置内容区域的宽度和高度,要知道,完整大小的元素 阅读全文

posted @ 2021-03-30 16:01 zhishiyv 编辑

走n级台阶
摘要:面试题: 走台阶算法(本质上是斐波那契数列),问题描述大致上就是可以选择走一步,两步,...,问走完100级台阶共多少走法? 实例:问有n级台阶,一个人一次可以上一次阶,也可以上两次台阶,也可以一次上三次台阶,问上这个n级别的台阶一共有多少种走法? 假若台阶有1级,有一种走法, 假若台阶有2级,有两 阅读全文

posted @ 2021-03-30 15:01 zhishiyv 编辑

快速排序
摘要:1.概念 快速排序 快速排序,听这个名字就能想到它排序速度比较快方法,是一种分治思想,现在各种语言中自带的排序库很多使用的都是快速排序。快速排序是一种原地排序,只需要一个很小的栈作为辅助空间,空间复杂度为O(log2n),适合在数据集比较大的时候使用。时间复杂度比较复杂,最好的情况是O(n),最差的 阅读全文

posted @ 2020-01-01 11:32 zhishiyv 编辑

导航

统计

点击右上角即可分享
微信分享提示