笔记
文章平均质量分 61
青灯夜游/
An inch of gold will not buy an inch of time.
展开
-
近期一次前端笔试,两题
题目描述: 每天皇帝每天都需要听大臣们讲述某些国家大事的情况,由于每个大臣所讲的事的重要性都不一样,每天皇帝都忙得焦头烂额,效率还特别低,所以皇帝决定,将这些大臣讲述事情的顺序做出一定调整,已知,每天有m个大臣要觐见,每个大臣都要禀报n件事,而皇帝根据每个人的事务的重要请你给他们排序,重要性总和越大的越排在前面禀报,现给出一个m x n 的数据,其中(mi , nj)表示第i个大臣要禀报的第j件事的重要性,如果重要性之和相同则按照先后顺序排列,然后,有个第id个大臣来问问你,他排在第几位?...原创 2022-08-29 00:09:00 · 297 阅读 · 1 评论 -
Vue组件间通信方式(总结)
通过props传递通过$emit触发自定义事件emit触发自定义事件,使用refEventBusemit触发自定义事件,$parent 或 $rootattrs 与 listenerslisteners接收除去带有.native事件修饰符的所有事件监听器,作用和provide 与 inject注意这里是祖先传后代,意思是不管哪一代都能拿到祖先的数据Vuex。......原创 2022-08-18 16:37:59 · 509 阅读 · 0 评论 -
说说Vue的核心特点(一,数据驱动)
e.js的核心思想之一就是数据驱动。所谓数据驱动就是视图是依靠数据驱动实现的,我们对视图的修改不会直接去操作DOM,而是通过操作数据,Vue帮我们修改视图。相比于传统的jQuery的原生DOM开发,大大简化了代码量,而且用户体验也更加友好,不需要花费大量精力去维护。尤其是在业务量十分复杂的时候,只关心数据的改变,会让代码的逻辑更加清晰,也更易于维护。...原创 2022-08-16 11:51:30 · 793 阅读 · 2 评论 -
JavaScript引用类型转换为原始类型(隐式类型转换问题)
在Symbol.toPrimitive方法出来之前,也有这一套转换规则,同样的引用数据类型中也会内置两个方法,一个是valueOf,一个tosSring,当需要被转换为数值时,就会调用valueOf,返回值就为转换后的原始数据类型,若需要转换为字符串类型时,就会调用,toString,返回值就为转换后的原始数据类型,具体代码分析如下。这里提一嘴,Boolean的转换,不会触发引用数据类型的转换,且Boolean转换中,除了undefined,null,NaN,0,为false之外否为true。...原创 2022-07-20 10:55:01 · 463 阅读 · 0 评论 -
常见的web攻击有哪些?如何防御?
web攻击是什么Web攻击(WebAttack)是针对用户上网行为或网站服务器等设备进行攻击的行为,如植入恶意代码、修改网站权限、获取网站用户隐私信息等Web应用程序的安全性是任何基于Web业务的重要组成部分确保Web应用程序的安全十分重要,即使是代码中很小的bug也有可能导致隐私信息被泄露,站点安全就是为了保护站点不受未授权的访问、使用、修改和破坏而采取的行为或实践常见的Web攻击有:XSS (Cross Site Scripting) 跨站脚本攻击 CSRF(Cross-site原创 2022-04-03 16:28:40 · 7426 阅读 · 0 评论 -
深拷贝与浅拷贝的区别?如何实现它们?
浅拷贝指的是创建一个新数据,这个数据有着与原始数据的一份精确拷贝,如果原始数据是基本类型的数据,那么拷贝出来的数据就是原始数据的值,如果原始数据为引用数据类型的值,那么,拷贝的就是原始数据的内存地址,也就是说,浅拷贝只会拷贝一层数据,其他的引用数据类型的值,只会拷贝其内存地址,也就是会共享一个堆数据实现:function shallowClone(obj) { if(typeof obj == "object" && obj != null) { con原创 2022-03-28 21:06:56 · 447 阅读 · 0 评论 -
元素不定宽高的情况下水平垂直居中的方法有哪些?
实现方式 定位 + margin:auto 定位 + margin: 负值 定位 + transform table布局 flex布局 grid网格布局 定位+margin:auto<style> .father{ width:500px; height:300px; border:1px solid #0a3b98; position: relative;.原创 2022-03-27 17:44:26 · 1537 阅读 · 0 评论 -
优化css性能有哪些方法?
虽然css在整个项目中占的比重并不多,但是他也是贯穿页面的全程的,一些细节上的性能优化是十分必要的。方法有很多,主要围绕,css加载,选择器嵌套,http请求内联首屏关键CSS 异步加载CSS 资源压缩 合理使用选择器 减少使用昂贵的属性 不要使用@import内联首屏关键CSS这个可能对于一些大项目而言做起来过于麻烦,但是也是一种不错的性能优化方案,在一个页面打开的时候,首要的内容出现在屏幕上的时间影响着用户体验,在加载html页面的时候如果通过链接的方式去加载css的话,需要等到原创 2022-03-27 16:10:37 · 1678 阅读 · 0 评论 -
什么是响应式设计?如何实现?
概念: 响应式网站设计(Responsive Web Design) ,是一种网络页面布局设计,页面的设计与开发与用户行为以及设备环境(系统,终端,分辨率,屏幕定向)进行相应的响应与调整。类似一句名言:“content is like water”响应式设计的特点: 同时适配PC + 平板 + 手机等 标签导航在接近手持终端设备时改变为经典的抽屉式导航 网站的布局会根据视口来调整模块的大小和位置 如何实现响应式网站的设计原理就是依据媒体查询的功能,监测不同的屏幕尺寸..原创 2022-03-26 21:49:10 · 574 阅读 · 0 评论 -
怎么理解回流与重绘?什么场景下会触发?如何减少?
要想理解什么是回流与重绘,那我们就务必需要知道,浏览器是如何从空白页面渲染到一个结构完整样式清晰的页面的浏览器渲染过程:1. 解析DOM 生成DOM树 (DOM Tree),解析CSS 生成CSS树(CSS Tree)2. 将CSS树与DOM树结合,生成渲染树(Render Tree)3. (layout)触发回流,根据渲染树,进行回流,得到节点的集合信息 (位置 ,大小)4. (Painting)触发重绘,根据渲染树以及得到的集合信息,得到节点的绝对像素5. (display)展示原创 2022-03-26 19:55:58 · 1350 阅读 · 0 评论 -
leedcode 删除有序数组中的重复项 (JavaScript)
题目:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。思路:首先,我们要理解一下什么是双指针,就是字面意思,两个指针啦,原创 2021-11-22 23:17:15 · 106 阅读 · 0 评论 -
leedcode 合并两个有序链表 (JavaScript)
题目:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]思路:这道题的思路很简单,就和合并数组很像,但是这里是链表,而单向链表只认next操作这个规则想必也不用多说,这里我们先创建一个空链表用来保存新产生的链表,随后创建一个dummy指向这个新链表,当 l1 以及 l2 都不为空时...原创 2021-11-19 09:24:35 · 589 阅读 · 0 评论 -
leedcode 有效的括号 (JavaScript)
题目:给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true思路:这道题又要用到我们一个老朋友,哈希表,没错,这道题分析起来很简单,只要注意一个点,就是堆栈思想,这道题主要考察的是我们的堆栈思想,也就是 “先进后出,后进先出” 。第一步: 我们创建一个 map() 并初始...原创 2021-11-17 00:29:24 · 93 阅读 · 0 评论 -
leedcode 回文数 (JavaScript)
题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例1:输入:x = 121输出:true思路:这道题相对而言比较简单,重点是我们可以通过这道题来了解解这种有关 “回文” 题惯用的思路是什么,那就是,从循环遍历的过程中向两边遍历,或者直接从两边开始向内遍历,这道题就是要...原创 2021-11-15 00:00:26 · 992 阅读 · 0 评论 -
leedcode 删除链表的倒数第N个节点 (JavaScript)
题目:给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例 1:输入: head = [1,2,3,4,5], n = 2输出: [1,2,3,5]思路:这道题的解题思路挺巧妙的,首先要清除的是删除链表节点需要做的不只是简单的删除其中一个数字这么简单,而且也没有这种方式去删除 ,方法就是数据结构中的,指针指向改变,通过将倒数第n+1个节点的的指针指向改成指向倒数第 n - 1 个节点即可,而这道题的关键在于,不清楚链表长度,以及删除的是倒数第n个节点。分..原创 2021-11-14 00:33:44 · 1399 阅读 · 0 评论 -
leedcode 三数之和 (JavaScript)
题目:给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]思路:代码:...原创 2021-11-11 23:48:34 · 699 阅读 · 0 评论 -
leedcode 无重复字符的最长子串 (JavaScript)
题目:给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。思路:代码:var lengthOfLongestSubstring = function(s) { const set = new Set() let i = 0 , j = 0 let maxLength = 0 if(s.length === ...原创 2021-11-11 14:15:40 · 547 阅读 · 0 评论 -
leedcode 最长回文子串 (JavaScript)
题目:给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。思路:首先根据输入案例我们也能知道,最长回文子串会出现两种情况,首先先分析第一种大家默认的情况也是相对比较好理解的情况 ,就是上面的输入案例这种:1.准备一个循环,遍历字符串里的所有字符,一个 maxLength 用来存储遍历到的子串的长度 ,以便判断是否为最长的回文子串,一个子串头部标记 start 用于监测字串的最左边的字符,便于最后原创 2021-11-10 12:52:46 · 462 阅读 · 0 评论 -
leetcode 两数之和 (JavaScript)
题目:给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 :输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。...原创 2021-11-09 22:19:17 · 527 阅读 · 0 评论 -
leedcode两数相加(JavaScript)
题目:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.解题思路:创建一个节点,用作新链表的头部节点,并且分别用两个指针指向这个节点,一个节点指向不变,一直指向这个头部节点,用于最后返回新链表,另一个指针用于循环生成新链表,在这道题中,需要注意的细节就在于是否进位的问题,那么再循环生成新链表的过程中,,每生成一个节点,就要做一次取模(sum % 2)和取余(Math.floor(sum/10))用一个变量carr原创 2021-11-09 00:07:33 · 208 阅读 · 0 评论