前端面试
一个有理想的CV
这个作者很懒,什么都没留下…
展开
-
2020面试准备13----依次输出的是多少
function Foo(){ Foo.a = function(){ console.log(1) } this.a = function() { console.log(2) } } // 把Foo当做类,在原型上设置实例公有的属性方法 => 实例.a() Foo.prototype.a = function(){ console.log(3) } // 把Foo当做普...原创 2020-03-15 10:57:29 · 58 阅读 · 0 评论 -
2020面试准备13----实现一个字符串匹配算法
实现一个字符串匹配方法,从字符串S中,查找是否从存在字符串T。若存在返回所在位置,不存在返回-1(不基于indexof/includes) 1、使用substr ~function(){ function myIndexOf(T){ let lenT = T.length, lenS = this.length for(let i=0;i<lenS-lenT+1;i++){ ...原创 2020-03-15 09:43:58 · 177 阅读 · 0 评论 -
2020面试准备12----如何把一个字符串的大小写取反(大写变小写或小写变大写)
let str = "adsfsgEREvg啦啦啦啦啦dfsfr"; str = str.replace(/[a-zA-Z]/g,content=>{ console.log(content) // content=>每一次正则匹配的结果 return content.toUpperCase()===content?content.toLowerCase():content.to...原创 2020-03-15 08:34:47 · 423 阅读 · 0 评论 -
2020面试准备11----箭头函数与普通函数的区别是什么?构造函数(function)可以使用new生成实例,箭头函数可以吗?
箭头函数与普通函数的区别是什么?构造函数(function)可以使用new生成实例,箭头函数可以吗? 1.箭头函数和普通函数的区别 (1)箭头函数语法上比普通函数更加简洁 (2)箭头函数没有自己的this,它里面出现this是继承函数所处上下文中的this,(使用call,apply等任何方式都无法改变this的指向) (3)箭头函数中没有arguments(类数组),只能基于…ARG获取传递的参...原创 2020-03-14 23:50:41 · 920 阅读 · 0 评论 -
2020面试准备9----实现(5).add(3).minus(2),使其输出结果为:6
// 实现(5).add(3).minus(2),使其输出结果为:6 ~ function(number){ // 每一个方法执行完,都要返回Number这个类的实例,这样才可以继续取Number类原型中的方法(链式写法) function check(number){ number = Number(number) return isNaN(number)?0:number } ...原创 2020-03-02 14:53:45 · 355 阅读 · 0 评论 -
2020面试准备8----call和apply的区别
1、call和apply都是函数原型上的方法 2、都是用来改变this指向的,传递的第一个参数均为要改变的this的对象3 3、不同的是,call传递后面的参数时,需要一个一个传递,apply传递后面参数时,以数组的形式传递 4、当后面参数超过三个时,使用call的性能要比apply的性能要好一点 5、关于bind:fn.bind(obj) bind方法只是预先把fn的this改为obj,此时fn...原创 2020-03-02 14:02:04 · 197 阅读 · 1 评论 -
2020面试准备7----一道阿里面试题
做题之前需要知道的: 一、变量提升 1.变量提升。使用var来声明变量的时候,会提到当前作用域最顶端,赋值操作在原处不变 2.函数提升。函数的声明有两种方式。 (1)函数式声明 function bar () {} (2)函数字面量式声明 var foo = function () {} 函数字面量式声明的提升和变量的提升是一样的,函数只是一个具体的值 但函数声明式的提升会提升到作用域的最前面...原创 2020-02-23 11:39:06 · 177 阅读 · 1 评论 -
2020面试准备6----js对象的浅拷贝和深拷贝
一、浅拷贝(只克隆第一级) 1、不使用es6 <script> let obj = { a:100, b:[10,20,30], c:{ x:10 }, d:/^\d+$/ } let obj2 = {} for(let key in obj){ // 使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问 // 只遍历对象自身...原创 2020-02-15 23:17:21 · 135 阅读 · 0 评论 -
2020面试准备5----堆栈内存题和闭包作用域的题
1.第一道 let a = {}, b = '0', c = 0 a[b] = '张三' a[c] = '李四' console.log(a[b])//李四 原因:一个对象中的属性名不能重复,属性名一般都是字符串,在这里,字符串‘0’和数字0是一样的 2.第二道 let a = {} b = Symbol('1') c = Symbol('1') a[b] = '张三' a[c] = '...原创 2020-02-12 12:21:10 · 124 阅读 · 0 评论 -
2020面试准备4----经典布局,左定右定,中间自适应
一、圣杯布局 <body> <div class="container clearfix"> <div class="center"></div> <div class="left"></div> <div class="right"></div> </div> ...原创 2020-02-06 17:58:34 · 292 阅读 · 0 评论 -
2020准备面试3----盒模型
一、标准盒模型 box-sizing:content-box 样式中的width height是指内容content的宽高,不是整个盒子的宽高,整个盒子的宽高是由margin+ padding+ border +content组成的 二、IE盒模型 box-sizing:border-box 样式中的width 和height指的是盒子的大小,不是内容content 的大小,无论怎样调整paddi...原创 2020-02-06 11:52:05 · 74 阅读 · 0 评论 -
2020面试准备2---标签
一、标签语义化 合理的标签做合理的事情 二、有哪些标签 1、块状标签 div p h1~h6 ul ol dl dt header footer main section article table form 2、行内 a span small strong em i label 3、行内块 img input 三、区别 1、块状标签 (1)每个元素独占一行或多行 (2)可以手动设置宽高 (3)宽...原创 2020-02-06 11:04:59 · 116 阅读 · 0 评论 -
2020面试准备1----水平垂直居中的几种方式
(为了方便阅读,我把基础部分css和居中的css分开来写) 一、使用定位 方法1: top和left分别为50%,再使用margin-left和margin-top设置负的宽高 (这种方法需要知道子盒子的宽高) <style> .father{ height: 300px; width: 600px; background:yellow; overfl...原创 2020-02-05 13:56:11 · 208 阅读 · 0 评论