![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试秃破瓶颈
四灵妖
这个作者很懒,什么都没留下…
展开
-
block,inline和inline-block
常见的块元素:div、p、h1-h6、table、pre(格式化文本)、ol/ul内联元素:span\img\input\strong\em\a根据display属性,我们可以将元素分为块级元素(block)和内联级元素(inline)。它们最大区别是:block元素可以设置宽度,独占一行。inline元素宽度由内容决定,与其他元素并列在一行。display:blockblock元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素默认宽度是父元素的100%,默认高度被内原创 2020-10-09 10:33:19 · 285 阅读 · 0 评论 -
事件代理原理、应用及其实现
简易版本:事件委托本质上是利用了浏览器事件冒泡的机制。因为事件在冒泡过程中会上传到父节点,并且父节点可以通过事件对象获取到目标节点,因此可以把子节点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事件,这种方式称为事件代理。使用事件代理我们可以不必要为每一个子元素都绑定一个监听事件,这样减少了内存上的消耗。并且使用事件代理我们还可以实现事件的动态绑定,比如说新增了一个子节点,我们并不需要单独地为它添加一个监听事件,它所发生的事件会交给父元素中的监听函数来处理。事件委托呢,又叫事件代.原创 2020-10-07 12:03:01 · 769 阅读 · 0 评论 -
事件循环详细版
事件循环:javascript是一门单线程的非阻塞的脚本语言。js为什么是单线程的语言?是因为js的执行引擎只有一个线程,不会在执行期间开启新的线程,而非浏览器是单线程的。浏览器是多线程的。Event Loop是javascript的执行机制,也是js实现异步的一种方法。单线程意味着,javascript代码在执行的任何时候,都只有一个主线程来处理所有的任务,如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。保证了程序执行的一致性。不管是什么新框架新语法糖实现的所谓异步,其原创 2020-10-07 09:53:18 · 196 阅读 · 0 评论 -
Promise
一、定义:所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise对象有以下两个特点。(1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态.2)一旦状态改变,就不会再变,任何时候都可以得到这原创 2020-07-24 15:54:42 · 378 阅读 · 0 评论 -
css面试整理(更新中。。。)
大佬的文章1.怎么让一个不定宽高的 DIV,垂直水平居中?1.使用Flex只需要在父盒子设置:display: flex; justify-content: center;align-items: center;2.使用 CSS3 transform父盒子设置:display:relativeDiv 设置: transform: translate(-50%,-50%);position: absolute;top: 50%;left: 50%;PS:translate()函数是css3的新特原创 2020-07-21 10:01:02 · 111 阅读 · 0 评论 -
css3 Flex 布局教程
flex教程flex实例篇圣杯布局的实现圣杯布局的实现?上部(header)和下部(footer)各自占领屏幕所有宽度。上下部之间的部分(container)是一个三栏布局。三栏布局两侧宽度不变,中间部分自动填充整个区域。中间部分的高度是三栏中最高的区域的高度。<div class="header"> <h4>header</h4></div><div class="container"> <div cl原创 2020-07-20 23:46:23 · 146 阅读 · 0 评论 -
js函数柯里化
https://www.jianshu.com/p/5e1899fe7d6b接收函数作为参数的函数,都可以叫做高阶函数。柯里化其实就是高阶函数的一种特殊用法。柯里化是指这样一个函数(假设叫做createCurry),他接收函数A作为参数,运行后能够返回一个新的函数。并且这个新的函数能够处理函数A的剩余参数。用下面的例子解释:有一个接收三个参数的函数A。function A(a, b, c) { // do something}假如,我们有一个已经封装好了的柯里化通用函数createC原创 2020-07-20 11:18:45 · 81 阅读 · 0 评论 -
js基础面试题总结(不会的)
https://juejin.im/post/5ee03947e51d457889262921完整题目的链接见上面,截图了自己不会的,再加以总结。var b = a,此时a和b指向同一个对象。.运算符比 = 运算符高,先计算`a.x`,此时 b = { n:1, x:undefined}相当于给对象添加了x属性。a.x = a = {n:2};计算完a.x,再计算 = ,赋值是从右向左,此时a指向一个新对象。a = { n:2}a.x已经执行过了,原创 2020-07-19 22:21:44 · 139 阅读 · 0 评论 -
js基础复习篇--判断object对象是否是数组
首先,js的数据类型分为两类,基本数据类型(值类型)和对象类型(引用类型)。基本数据类型有:字符串、number、布尔、symbol、undefined、null.引用数据类型:object普通对象:存储的功能;Array数组对象:有下标,内部数据有序Function:内部有可执行的代码判断object对象是否是数组1、typeof方法该方法返回是字符串的表达形式// 基本类型typeof 123; //numbertypeof "123"; //stringtypeof true;原创 2020-06-23 11:32:09 · 588 阅读 · 0 评论 -
原型链总结及继承
https://www.muyiy.cn/blog/5/5.2.html#%E5%8E%9F%E5%9E%8B%E9%93%BE%E7%BB%A7%E6%89%BF原型链继承原型链继承的本质是重写原型对象,代之以一个新类型的实例。如下代码,新原型 Cat 不仅有 new Animal() 实例上的全部属性和方法,并且由于指向了 Animal 原型,所以还继承了Animal 原型上的属性和方法。function Animal() { this.value = 'animal';}Anima原创 2020-07-18 15:17:21 · 143 阅读 · 0 评论 -
js代码模拟实现 new构造函数
function create() { // 1、创建一个空的对象 var obj = new Object(), // 2、获得构造函数,同时删除 arguments 中第一个参数 Con = [].shift.call(arguments); // 3、链接到原型,obj 可以访问构造函数原型中的属性 Object.setPrototypeOf(obj, Con.prototype); // 4、绑定 this 实现继承,obj 可以访问到构造函数中的属性 var原创 2020-07-18 10:44:30 · 290 阅读 · 0 评论 -
Object.prototype.valueOf()和toString()方法
MDN.valueof()方法默认情况下,valueOf方法由Object后面的每个对象继承。你很少需要自己调用valueOf方法;当遇到要预期的原始值的对象时,JavaScript会自动调用它。JavaScript的许多内置对象都重写了该函数,以实现更适合自身的功能需要。因此,不同类型对象的valueOf()方法的返回值和返回值类型均可能不同。注意number、string、boolean中的基本包装类型的使用。MDN.tostring方法默认情况下,toString() 方法被每个 Obje原创 2020-07-16 16:01:35 · 443 阅读 · 0 评论 -
JavaScript中setTimeout()和setInterval()的使用以及区别
参考文献最主要的区别是:setTimeout只运行一次,也就是说设定的时间到后就触发运行指定代码,运行完后即结束。如果运行的代码中再次运行同样的setTimeout命令,则可循环运行。(即 要循环运行,需函数自身再次调用 setTimeout());而 setinterval是循环运行的,即每到设定时间间隔就触发指定代码。这是真正的定时器。...原创 2020-07-16 15:47:30 · 104 阅读 · 0 评论 -
javascript值传递面试题
var a = {n: 1};var b = a;a.x = a = {n: 2};a.x // --> undefinedb.x // --> {n: 2}参考链接原创 2020-07-16 14:50:58 · 101 阅读 · 0 评论 -
ES6对象新增方法
参考:阮一峰1.Object.is() 方法判断两个值是否是相同的值。ES5 比较两个值是否相等,只有两个运算符:相等运算符()和严格相等运算符(=)。它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0。ES6提出Object.is方法,这个算法用来比较两个值是否严格相等,与严格比较运算符( === )的行为基本一致。和===不同的是:2.Object.assign()基本用法:Object.assign()方法用于对象的合并,将源对象(source)的所有可原创 2020-07-14 21:35:22 · 170 阅读 · 0 评论 -
ES6数组新增的方法
阮一峰1.数组实例的 find() 和 findIndex()数组实例的find方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。[1, 4, -5, 10].find((n) => n < 0)// -5上面代码找出数组中第一个小于 0 的成员。[1, 5, 10, 15].find(function(value, index, a原创 2020-07-14 20:06:43 · 5133 阅读 · 0 评论 -
箭头函数和普通函数的区别
箭头函数与普通函数的区别:箭头函数是匿名函数,不能作为构造函数,不能使用new。let fn=()=>{ this.x=200;}let f=new fn();//fn is not a constructor箭头函数没有原型属性(箭头函数不能当作构造函数,自然就没有构造函数的prototype的属性)3.this指向不同,箭头函数的this是定义时所在的对象,普通函数看前面有没有.,点前面是谁this 就是谁,没有.就是window不可以使用arguments对象,该对原创 2020-07-14 17:14:33 · 119 阅读 · 0 评论 -
ES6变量的解构赋值简介
1.数组的解构赋值ES6允许这样:可以从数组中提取值,按照对应位置,对变量赋值(根据下标结构给变量)。本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。// 如果数组本身还有嵌套,也可以通过下面的形式进行解构赋值,注意嵌套层次和位置要保持一致:逗号占位置,依次顺延不完全解构,即等号左边的模式,只匹配一部分的等号右边的数组。这种情况下,解构依然可以成功。如果解构不成功,变量的值就等于undefined。2.对象的解构赋值对象的解构赋值(根据属性原创 2020-07-14 16:48:54 · 91 阅读 · 0 评论 -
ES6新特性--let和const
https://es6.ruanyifeng.com/#docs/let1.let和const1.1 let命令所在的代码块内有效let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。在for循环中使用var命令,都是全局作用域中的。1.2 let命令不存在变量提升var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined。为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。1.原创 2020-07-14 10:22:10 · 453 阅读 · 0 评论 -
javascript正则表达式
https://juejin.im/post/5965943ff265da6c30653879#heading-18原创 2020-07-13 19:39:05 · 58 阅读 · 0 评论 -
javascript闭包
1. 产生闭包的条件?1.函数嵌套2.内部函数引用了外部函数的数据(变量/函数)3.执行外部函数,也就是执行了内部函数定义2. 闭包到底是什么?使用chrome调试查看理解一: 闭包是嵌套的内部函数(绝大部分人),也就是fn2函数理解二: 包含被引用变量(函数)的对象closure(极少数人)注意: 闭包存在于嵌套的内部函数中<script type="text/javascript"> function fn1 () { var a = 2//此时已产生了原创 2020-07-07 10:26:49 · 81 阅读 · 0 评论 -
javascript中的this详解及面试题分析
文章参考来源,写博客的目的就是梳理自己对知识的理解,引用了其他作者比较精华的部分,只是为了方便自己复习,或许也能帮助一些小伙伴节约时间。https://juejin.im/post/5de4fe1d5188255e8b76e1f2https://juejin.im/post/596a28f6f265da6c360a2716this的初衷:this设计的初衷是在函数内部使用,用来指代当前的运行环境。为什么这么说呢?JavaScript中的对象的赋值行为是将地址赋给一个变量,引擎在读取变量的时候其实就原创 2020-07-06 11:07:39 · 1448 阅读 · 2 评论 -
js深拷贝与浅拷贝
1.深拷贝与浅拷贝的理解:https://juejin.im/post/59ac1c4ef265da248e75892b#heading-122.如何实现浅拷贝和深拷贝?https://segmentfault.com/a/1190000016440069原创 2020-06-29 15:59:56 · 696 阅读 · 0 评论 -
快速幂算法
作者——转载自——https://blog.csdn.net/qq_19782019/article/details/85621386写的很好,通俗易懂!转载 2020-06-28 21:59:40 · 102 阅读 · 0 评论 -
字节跳动 training camp题目
1.判断obect是否为数组:之前的博客有写判断object对象是否是数组2.用纯css实现三角形:要点:让元素的内容去为0,使三角形的两条边无线的接近哪个边的方向想实现三角形就设置成真实的颜色,其他的设置为透明色,不要设置为白色,因为白色在有背景颜色时会显示出来。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport原创 2020-06-23 23:10:22 · 312 阅读 · 0 评论