龙空技术网

撩课大前端-面试宝典-第十一篇

ITLike 42

前言:

当前姐妹们对“jquery合并两个对象”大概比较重视,朋友们都想要了解一些“jquery合并两个对象”的相关文章。那么小编也在网络上网罗了一些关于“jquery合并两个对象””的相关内容,希望看官们能喜欢,看官们快快来了解一下吧!

1. 如何手写一个JQ插件?

方式一:$.extend(src) 该方法就是将src合并到JQ的全局对象中去:$.extend({ log: ()=>{alert('撩课itLike');}});方式二:$.fn.extend(src) 该方法将src合并到jquery的实例对象中去: $.fn.extend({ log: ()=>{alert('撩课itLike');} });
说说平衡二叉树?
平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树。具有以下性质:1)它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。2)平衡二叉树必定是二叉搜索树,反之则不一定。3)平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。 最小二叉平衡树的节点的公式如下:F(n)=F(n-1)+F(n-2)+1 备注:1是根节点,F(n-1)是左子树的节点数量,F(n-2)是右子树的节点数量。

3. 清除浮动和解决垂直外边距重叠的解决方案?

问题描述:1) 父元素没有设置宽高,尺寸由子元素撑起;子元素一旦浮动,父元素高度会发生塌陷。2)子元素设置margin-top会作用的父元素的margin-top;此时会造成垂直外边距重叠。撩课小编:.clearfix::after,.clearfix::before{ content: ' ';  display: table; clear: both; }

4. sessionStorage 、localStorage 和 cookie ?

相同点:都用于浏览器端存储的缓存数据;不同点:1) 存储内容是否发送到服务器端当设置了Cookie后,数据会发送到服务器端,造成一定的宽带浪费;xxxstorage则会将数据保存到本地,不会造成宽带浪费;2) 数据存储大小不同Cookie数据不能超过4K,适用于会话标识;xxxstorage数据存储可以达到5M;3) 数据存储的有效期限不同cookie只在设置了Cookid过期时间之前一直有效,即使关闭窗口或者浏览器;sessionStorage,仅在关闭浏览器之前有效;localStorage,数据存储永久有效;4) 作用域不同cookie和localStorage是在同源同窗口中都是共享的;sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;

5. 判断一个单词是否是回文?

回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情景,叫做回文,也叫回环。比如 cacac,redivider 。let checkPalindrom = (str)=>{  return str ===  str.split('').reverse().join('');}

6. 不借助临时变量,进行两个整数的交换?

撩课小编:输入 a = 3, b =1, 输出 a = 1, b =3let swap = (a , b)=>{  b = b - a; a = a + b; b = a - b; return [a,b];}

7. 运用JS 实现二叉查找树?

二叉查找树,也称二叉搜索树、有序二叉树;是指一棵空树或者具有下列性质的二叉树:1) 任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;2) 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;3) 任意节点的左、右子树也分别为二叉查找树;4) 没有键值相等的节点。5) 二叉查找树相比于其他数据结构的优势在于查找、插入的时间复杂度较低, 为O(log n)。二叉查找树是基础性数据结构,用于构建更为抽象的数据结构,如集合、multiset、关联数组等。实现:1)先设定好每个节点的数据结构class Node {  constructor(data, left, right) { this.data = data; this.left = left; this.right = right; }}2)树是由节点构成,由根节点逐渐延生到各个子节点,因此它具备基本的结构就是具备一个根节点,具备添加,查找和删除节点的方法。class BinarySearchTree extend Node{ constructor(data, left, right) { super(data, left, right); this.root = null; } insert(data) { let n = new Node(data, null, null); if (!this.root) { return this.root = n; } let currentNode = this.root; let parent = null; while (1) { parent = currentNode; if (data < currentNode.data) { currentNode = currentNode.left; if (currentNode === null) { parent.left = n; break; } } else { currentNode = currentNode.right; if (currentNode === null) { parent.right = n; break; } } } } remove(data) { this.root = this.removeNode(this.root, data) } removeNode(node, data) { if (node === null) { return null; } if (data === node.data) { if (node.left == null && node.right == null) { return null; } if (node.left === null) { return node.right; } if (node.right === null) { return node.left; } let getSmallest = (node) =>{ if(node.left === null && node.right == null) { return node; } if(node.left !== null) { return node.left; } if(node.right !== null) { return getSmallest(node.right); } } let temNode = getSmallest(node.right); node.data = temNode.data; node.right = this.removeNode(temNode.right,temNode.data); return node; } else if (data < node.data) { node.left = this.removeNode(node.left,data); return node; } else { node.right = this.removeNode(node.right,data); return node; } } find(data) { let current = this.root; while (current !== null) { if (data == current.data) { break; } if (data < current.data) { current = current.left; } else { current = current.right } } return current.data; }}

标签: #jquery合并两个对象 #平衡树treap