![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
梦想身高1米8
这个作者很懒,什么都没留下…
展开
-
js 84*148=B6A8 多少进制才能使两边相等
84 * 148=B6A8 多少进制才能使两边相等A 15B 11C 12D 14E 16F 以上都不对计算:8*4 -8 = 24答案:C分析:看个位数假设为X进制,进位为c,则有十进制方程:4 * 8 = 8+c * X=>24 = c * X=>X = 12参考:https://www.nowcoder.com/questionTerminal/64e184fd3c0b47ff9e58db5bac938e81?toCommentId=62430.原创 2021-03-10 15:42:13 · 1014 阅读 · 0 评论 -
防抖和节流
1 防抖:在第一次触发事件时,不立即执行函数,而是给出一个期限值,比如200ms,然后:如果在200ms内没有再次触发滚动事件,那么就执行函数如果在200ms内再次触发滚动事件,那么当前的计时取消,重新开始计时2 节流:如果短时间内大量触发同一事件,那么在函数执行一次之后,该函数在指定的时间期限内不再工作,直至过了这段时间才重新生效。参考:https://segmentfault.com/a/1190000018428170https://zhuanlan.zhihu.com/p/1035273原创 2021-03-08 17:02:39 · 71 阅读 · 0 评论 -
从输入url到页面加载发生了什么
1 浏览器地址栏输入URL并回车2 浏览器查找当前URL是否存在缓存,并比较缓存是否过期3 DNS解析URL对应的IP4 根据IP建立TCP连接(三次握手)5 发送HTTP请求6 服务器处理请求,浏览器接受HTTP响应7 浏览器解析并渲染页面8 关闭TCP连接(四次握手)参考:https://www.cnblogs.com/xiaoyuchen/p/10566427.html...原创 2021-03-08 15:20:42 · 66 阅读 · 0 评论 -
js bind模拟
var name='window上的name'var obj ={ name: "obj上的name", getName: function(i){ console.log(this.name, i); }}var obj2 = { name: "obj2上的name"}1 返回函数Function.prototype.myBind = function(context) { // 获取调用`myBind`的函数本身,用this获取 var self原创 2021-03-05 14:06:25 · 59 阅读 · 1 评论 -
js apply call模拟
var name='window上的name'var obj ={ name: "obj上的name", getName: function(i){ console.log(this.name, i); }}var obj2 = { name: "obj2上的name"}1 绑定上下文Function.prototype.myApply=function(context){ // 获取调用`myApply`的函数本身,用this获取 context.f原创 2021-03-04 16:52:52 · 89 阅读 · 1 评论 -
es6常用功能
https://es6.ruanyifeng.com/原创 2021-03-03 16:47:39 · 55 阅读 · 0 评论 -
js 事件循环,宏任务、微任务,setTimeout
Javascript 有一个 main thread 主线程和 call-stack 调用栈(执行栈),所有的任务都会被放到调用栈等待主线程执行。同步任务会在调用栈中按照顺序等待主线程依次执行异步任务会先进入Event Table并注册函数,当指定的事情完成后,Event Table会将注册的回调函数放入移入Event Queue,等待主线程空闲的时候(调用栈被清空),被读取到栈内等待主线程的执行。宏任务 MacroTask:script全部代码、setTimeout、setInterval、se原创 2021-03-03 14:49:42 · 453 阅读 · 1 评论 -
闭包、promise,await题目
1for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(new Date, i); }, 1000);}console.log(new Date, i);外层console先输出时间和51s后循环内5个console(几乎)同时输入事件和5原因: setTimeout被放入任务队列,主程序执行完后执行任务队列中的定时器25 -》 5,5,5,5,5 改成5-》0,1,2,3,原创 2021-03-02 16:44:31 · 108 阅读 · 0 评论 -
css 怪异盒模型 和 标准盒模型
https://blog.csdn.net/piaoyi1997/article/details/107367308原创 2021-03-01 11:18:35 · 101 阅读 · 0 评论 -
css 浏览器兼容
1 css初始化比如,在所有css开始之前,先将margin和padding都设为0,覆盖浏览器默认样式2 添加浏览器私有属性-moz代表firefox浏览器私有属性-ms代表IE浏览器私有属性-webkit代表chrome、safari私有属性-o代表opera私有属性对于书写顺序一定要注意,兼容性写法放到前面,把标准写法放到最后-webkit-transform:rotate(-3deg); /*为Chrome/Safari*/-moz-transform:rotate(-3deg);原创 2021-03-01 10:20:23 · 139 阅读 · 0 评论 -
css 画三角形
利用border属性画三角形1 border长什么样div{ width: 20px; height: 20px; border-top: 70px solid red; border-left: 70px solid beige; border-bottom: 70px solid greenyellow; border-right: 70px solid blueviolet;}1.1 放大border之后,可以看到每条border近似于三角形,原创 2021-02-23 15:04:12 · 228 阅读 · 0 评论 -
css 动画
1 transform设置元素的形状改变1.1 transform 设置变换类型transform: none | transform-function(参数)none表示不做变换transform-function表示一个或多个变化函数,变化函数由函数名和参数组成,参数包含在()里面,用空格分开例如:transform : rotate(30deg) scale(2,3);1.2 transform-origin设置变换基点所有变形都是基于基点,默认为元素的中心点。transform-o原创 2021-02-22 14:56:52 · 109 阅读 · 0 评论 -
js 检测数据类型
1 typeof可以确定值的原始类型1.2 使用typeof value1.2 返回值boolean:布尔值function:函数number:数值object:对象或nullstring:字符串symbol:符号undefined:未定义1.3 缺点不能具体细分对象console.log(typeof null) // objectconsole.log(typeof []) // objectconsole.log(typeof undefined) // undefi原创 2021-02-20 16:37:54 · 56 阅读 · 1 评论 -
css弹性布局 display:flex
flex是flexible box的缩写,意味弹性布局设为flex布局后,子元素的float、clear和vertical-align属性将消失1、flext-direction:row / column / row-reverserow 沿水平主轴让元素从左到右排列column 沿垂直主轴从上到下排列row-reverse 沿水平主轴从右到左排列2、flex-wrap:nowrap / wrapnowrap 默认元素不换行,自动减少宽度wrap 元素换行3、justify-content原创 2021-02-20 14:12:04 · 171 阅读 · 0 评论 -
css position 可能的值
1、absolute绝对定位,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。2、fixed绝对定位,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。3、relative相对定位,相对于其正常位置进行定位4、static默认值,没有定位,元素出现在正常的流中。忽略 top, bottom, left, ri原创 2020-05-10 13:58:07 · 188 阅读 · 1 评论 -
React 生命周期/生命周期方法
1、挂载组件实例被创建并插入dom时constructor()getDerivedStateFromProps()render()componentDidMount()2、更新props/state改变时shouldComponentUpdate()render()getSnapShotBeforeUpdate()componentDidUpdate()3、卸载componentWillUnmount()...原创 2020-05-17 15:37:35 · 114 阅读 · 0 评论 -
localStorage 存储读取删除
1 存储window.localStorage.setItem('key', value)2 读取window.localStorage.getItem('key', value)3 删除window.localStorage.removeItem('key', value)4 清空window.localStorage.clear()原创 2021-01-13 15:32:47 · 92 阅读 · 0 评论 -
css权重
1、css优先级规则1.1 css权值不同时,权重高的优先1.2 css权值相同时,后定义的规则优先1.3 css属性后面加important时,无条件绝对优先2、权重规则2.1 内联第一等级 权值1,0,0,02.2 id选择器第二等级 权值0,1,0,02.3 class、伪类、属性选择器第三等级 权值0,0,1,02.4 标签/元素、伪元素选择器第四等级 权值0,0,0,13、权值计算公式权值 = 第一等级选择器x个数,第二等级选择器x个数,第三等级选择器x个数,第四等级选原创 2020-11-12 11:47:33 · 48 阅读 · 0 评论 -
箭头函数和普通函数的区别
https://www.cnblogs.com/biubiuxixiya/p/8610594.html原创 2020-11-12 11:12:37 · 90 阅读 · 1 评论 -
js const let var 的区别
https://blog.csdn.net/lyc2786161648/article/details/86429375原创 2020-11-11 19:42:02 · 95 阅读 · 0 评论 -
localStorage sessionStorage token 的区别
https://www.cnblogs.com/typttxs/p/11431717.html原创 2020-11-11 11:25:15 · 474 阅读 · 0 评论 -
react 将函数绑定到组件实例 / 绑定事件
render() { return <button onClick={this.handleClick}></button>}1、在constructor中绑定constructor(props) { super(props); this.handleClick = this.handleClick.bind(this);}handleClick() { 函数处理}2、类属性handleClick = () => {原创 2020-11-11 11:03:36 · 613 阅读 · 0 评论 -
css 水平垂直居中
1、display:table-celltext-align:centervertical-align:center2、display:flexjustify-content:centeralign-items:center3、relative-absoluteleft:50%top:50%transform: translate(-50%, -50%); // 再偏移高度/宽度的一半或设置margin-left/margin-top单水平1、text-align:center原创 2020-11-10 17:05:38 · 56 阅读 · 0 评论 -
js 赋值、浅拷贝、深拷贝、深拷贝的循环引用问题
1、深拷贝的的方法递归循环引用时不能用递归可以用栈保存json.parse(json.stringify(obj))原创 2020-11-10 16:43:43 · 497 阅读 · 1 评论 -
js 基本数据类型和引用数据类型的区别
1、基本数据类型undefined null Boolean number string1.1 基本类型值指的是简单的数据段1.2 在内存中占据固定大小的空间,被保存在栈内存中1.3 按值访问,可以操作保存在变量中的实际的值1.4 不能给基本数据类型的值添加属性,尽管这样做不会导致错误var name = 'abc';name.type = 'string';console.log(name.type); // undefined1.5 复制时会创建值的副本,两个变量的操作不会互相影响原创 2020-11-09 15:06:51 · 155 阅读 · 0 评论 -
TCP三次握手 四次挥手
TCP三次握手的过程如下:1、客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。2、服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。3、客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。终止一个连接要经过四次握手1、 某个应用进程首先调用close,称该端执行“主动关闭”(active c原创 2020-05-17 17:20:35 · 87 阅读 · 0 评论 -
http 和 https
网站的url会分为2部分,通信协议和域名协议不同域名地址表示网站中不同的页面通信协议时浏览器和服务器之间沟通的语言,一般是http协议和https协议http协议是一种使用明文数据传输的网络协议https协议在数据进行传输之前,对数据进行加密,再发送到服务器搜索排名时https网站更有优势https时http+SSL/TCP的简称,SSL基于http之下TCP之上的一个协议层,是基于http标准并对TCP传输数据时进行加密TLS是更为安全的升级版SSL参考https://baijiaha原创 2020-05-17 17:17:37 · 35253 阅读 · 0 评论 -
http get和post的区别
序号getpost1参数连接在url后面参数存放在request-body中2因为浏览器对url长度有限制,多以传参数量有限制参数数量没有限制3请求参数暴露在url上安全方面,post比get更安全4请求参数会保存在浏览器历史记录上支持多种编码方式5浏览器回退操作时,get请求是无害的post请求会重新请求一次6浏览器会自动cachepost不会,除非主动设置7只能进行url编码支持多种编码8产生1个tcp数据包...原创 2020-05-10 14:19:08 · 77 阅读 · 0 评论 -
http中请求类型
get请求指定的页面信息并返回实体主体原创 2020-05-10 13:39:04 · 104 阅读 · 0 评论 -
实现浏览器内多个标签页面之间通信的四种方法
https://blog.csdn.net/weixin_46399753/article/details/105211771原创 2020-11-06 13:46:58 · 269 阅读 · 0 评论 -
JS 改变this指向 call() apply() bind()
1、call()第一个参数是this指向,后面依次是参数f.call(ojb,参数1,参数2…)2、apply()第一个参数是this指向,第二个参数是数组,用数组形式表示参数f.apply(obj, [参数1, 参数2…])3、bind()第一个参数是this指向,后面依次是参数只改变this指向,不会调用参数f.bind(obj,参数1,参数2…)...原创 2020-11-06 11:48:37 · 69 阅读 · 0 评论 -
闭包
闭包函数:声明在一个函数中的函数闭包:内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)之后特点:1、让外部访问函数内部变量变成可能2、局部变量会常驻在内存中3、可以避免使用全局变量,防止全局变量污染4、会造成内存泄漏(有一块内存空间被长期占用,而不被释放)官话版闭包就是可以创建一个独立的环境,每个闭包里面的环境都是独立的,互不干扰。闭包会发生内存泄漏,每次外部函数执行时,外部函数的引用地址不同,都会重新创建一个新的地址但凡是当前活动对象中有被内原创 2020-05-17 16:56:52 · 115 阅读 · 0 评论 -
2020.11.2
面试时很尴尬,因为答不出来了。面试完觉得安慰了下自己,还是挺有趣的。毕竟遇到了一个非常有耐心,态度超级好的面试官,虽然最后GG了,但还是有谢谢公司给的机会。1、自我介绍。说的有点磕巴,建议提前打好草稿。2、提问2.1因为我是”计算机科学与技术“专业毕业的(对不住,给广大学长学姐学弟学妹丢脸了),所以先问了js相关的问题(1)基本数据类型和引用数据类型(2)深拷贝的方法、深拷贝和浅拷贝的区别(3)this的指向(4)prototype 和proto,原型了解吗我不了解。。。2.2 css问原创 2020-11-06 11:56:11 · 77 阅读 · 0 评论