前端面试笔记
没人看的垃圾博客
这个作者很懒,什么都没留下…
展开
-
Js数组去重的三种办法
let arr = [1,2,3,4,2,1]// 方法一[...new Set(arr)]// 方法二arr.filter((item, index)=>arr.findIndex(item) === index)// 方法三arr.reduce((pre,cur)=> pre.includes(cur) ? pre : [...pre, cur], [])原创 2022-02-14 15:23:23 · 421 阅读 · 0 评论 -
行内元素
行内元素的定义指在正常文档流中会在一条水平线上排列的元素行内元素有哪些常用的: span img a tdinput label button select, textareaem small sup sub code行内元素的特性不可以设置宽高,宽高由内容决定可以设置行高 上下的内边距外边距都无效,左右有效可以转换为块级元素...原创 2020-10-27 15:22:36 · 127 阅读 · 1 评论 -
js数据类型的判断
数字类型判断构造器判断num.constructor === Number//true借用tostring方法判断Object.prototype.toString.call(num) === "[object Number]"以上是标准的方法,还有不标准的方法有isNaN(),正则匹配,parseFloat(),这些都是可以判断数字或数字字符串 数组类型的判断数组对象自带函数Array.isArray(arr)构造器判断arr.constructor === Array 原型链判断原创 2020-10-27 10:37:26 · 137 阅读 · 0 评论 -
js求二叉树的深度
求二叉树的深度思路:1+Max(左边子树的深度,右边子树的深度)代码如下: function deepPath(tree) { if(tree == null) { return 0 } else { let left = deepPath(tree.left) let right = deepPath(tree.right) return 1+Math.max(left,right) } }树的结原创 2020-10-15 09:50:22 · 913 阅读 · 0 评论 -
js的new操作符具体做了什么
创建一个空对象把空对象的原型设为构造函数的原型把构造函数的指针指向这个空对象并传参最后返回实例具体代码如下function likeNew(Obj,...args) { let newObj = {} newObj.__proto__ = Obj.prototype //可将前两步合并 let newObj = Object.create(Obj.prototype) let result = Obj.apply(newObj,args) if(typeof.原创 2020-10-05 15:02:32 · 117 阅读 · 0 评论 -
ES6封装MongoDB的CRUD
node.js调用mangodb的操作还是有点繁琐的,为了简化底层操作,关注具体业务,我特意吧MongoDB封装了一下,话不多说直接看代码封装代码let MongoClient = require('mongodb').MongoClient;const url = "mongodb://127.0.0.1:27017/"class Dbc { constructor(dataName,colName) { this.dataName = dataName this.col原创 2020-10-03 17:31:10 · 2740 阅读 · 5 评论 -
js 递归树结构数据查找节点,并输出从根到该节点的路径
需求,查找一个json树结构的某个节点,并输出从根节点到该节点的路径let arrPath=[]//保存路径let count=0function deepFinds(node,target) { arrPath.push(node.value) if(node.value === target) { count++ } if(node.children) { for (let i=0;i<node.children.length;i++) {原创 2020-09-30 11:42:30 · 4737 阅读 · 0 评论 -
cookie简介
http是无状态协议了结cookie前我们先简单了解一下http协议,http协议是无状态协议,也就是说我们访问一个网站的不同页面,相互之间是没有联系的,也就是说上次我们拿到的数据在页面跳转之后就消失了,还需要使用的话就要再次请求cookie是什么cookie是存储在客户端浏览器中的变量,同一个网站的不同网页可以共享的数据cooike有什么用cookie共享的数据可以减少对服务端的请求...原创 2020-06-10 22:27:51 · 235 阅读 · 0 评论 -
ES6新特性--let和const
let和var的区别let定义的变量是块级的变量。var定义的变量是全局变量或者函数变量什么是块级作用域呢,简单来说就是在离它最近的一组{}里面有效出去了就没用了举个例子{ let a=10} console.log(a)这样子是会报错的,但使用var不会那let相比var有什么优势呢举个例子:实现一组li标签的点击事件,每次点击时输出li的序列值<!DOCTYPE html><html lang="en"><head> <原创 2020-05-18 18:08:16 · 265 阅读 · 0 评论 -
上下两个div设置margin为20px,两个div的间距是多少,为什么?
答案是20你们可能会想为什么不是40呢?这就要好好理解一下盒子模型了(如下图所示)盒子的大小由内容,内边距和边框决定,外边距只是用来吧周围的东西挤开并不算在盒子的大小里面。也就是说外边距只与自身有关,并不影响其他盒子的距离计算。换句话说就是上下两个div设置margin,最终的距离由大的决定例如:上下两个div设置margin分别为20px,30px,两个div的间距是30px...原创 2020-01-29 19:34:23 · 5139 阅读 · 0 评论 -
父组件向子组件传值
先在父组件中的子组件标签中绑定值<Child :data1='msg'/>在子组件中使用props接受参数列表 props:["data1"]然后就可以在子组件中任意使用了看不太懂?算了,直接看代码吧 <!DOCTYPE html><html><head> <meta charset="UTF-8"> &l...原创 2020-01-05 17:27:05 · 147 阅读 · 0 评论 -
CSS3新特性
新增选择器1.样式选择器可以通过标签的样式选择便签如input[type="text"]可以选择到所有类型为文本的input标签2.伪类选择器(1)静态伪类 1. :link 超链接点击之前的样式 2. :visited 超链接点击之后的样式(2)动态伪类 1. :hover 鼠标悬浮时候的样式 2. :active 鼠标点击后,未松手时候的样式 3. :foc...原创 2020-01-03 20:30:05 · 148 阅读 · 0 评论 -
HTML5的新特点
#优点网络标准统一,HTML5本身是由W3C推荐出来的。更多的多媒体元素(视频和音频)有几个新的标签,这将有助于开发人员定义重要的内容更好地用户体验和交互可以使用HTML5的开发游戏#缺点安全:像之前Firefox4的web socket和透明代理的实现存在严重的安全问题,同时web storage、web socket 这样的功能很容易被黑客利用,来盗取用户的信息和资料。学...原创 2020-01-03 19:15:04 · 128 阅读 · 0 评论