1 婧大

尚未进行身份认证

我要认证

未来可期,要记得 公众号【婧大】

等级
TA的排名 21w+

三种改变this指向操作

call手写实现:Function.prototype.myCall = function(thisArg,...args){ if(typeof this != 'function'){ throw new TypeError('error') } const fn = Symbol('fn') //如果thisArg本身就有一个方法叫做fn怎么办?那不是调用call之后, //就会把它本身这个方法删掉了么?有的朋友会说,那起一个复杂点的函数名, //保证其他人不会起这

2020-09-19 09:12:04

【CSS】选择器优先级

1、选择器(优先级)选择器种类:严格来讲,选择器的种类可以分为三种:标签名选择器、类选择器和ID选择器。而所谓的后代选择器和群组选择器只不过是对前三种选择器的扩展应用。而在标签内写入style=""的方式,应该是CSS的一种引入方式,而不是选择器,因为根本就没有用到选择器。而一般人们将上面这几种方式结合在一起,所以就有了5种或6种选择器了。选择器优先级:CSS选择器效率从高到低的排序如下:1.id选择器(#myid)2.类选择器(.myclassname)3.标签选择器(div,h1,p

2020-09-16 14:51:07

【HTML】语义化

2、语义化在HTML5出来之前,我们习惯于用div来表示页面的章节或者不同模块,但是div`本身是没有语义的。但是现在,HTML5中加入了一些语义化标签,来更清晰的表达文档结构。如上图,这个页面结构中摒弃了所有div元素,取而代之的是HTML5语义化标签(用哪些标签取决于你的设计目的)。同样,W3C制定了这些语义化标签,不可能完全符合我们的设计目标。我们的目标是为了能够让开发者或是爬虫读懂各个模块的语义化内容,因此,div作为一个没有任何语义,仅仅是用来构建结构的元素,是最适合做容器的标签。一

2020-09-16 14:49:43

【HTML】行内和块级元素

1、行内,块级(含义)行内元素:行内元素:也叫做内联元素,一般都是语义级别的基本元素,内联元素已办只能容纳文本或者其他内联元素。举例:<a>标签可定义锚<b>字体bai加粗<br>换行<em>定义为强调的内容<i>斜体文本效果<img>向网页中嵌入一幅图像输入框<input> 元素定义标注(标记)<span>组合文档中的行内元素<label>标签为块级元素:块级元素,

2020-09-16 14:48:31

【算法】160、相交链表

160、相交链表题目描述解题思路1、要得出相交的节点值,就是要判断两条链表相交的位置2、首先遍历两条链表3、将pA,pB分别指向两条链表的头结点,并且开始往下遍历4、假设A为长链表,B为短链表5、我们知道,肯定会出现B链表先遍历到最后的节点,也就是指针指向null6、当出现这种情况时,我们先将pB指向A链表的头结点,继续往下遍历7、同时,我们也应该知道,此时长链表也会继续遍历,当它的遍历到最后的节点时,也就是指针指向null时,我们将pA指针指向B的头结点。8、A,B两条链表继续遍历

2020-09-07 14:42:52

【算法】141.环形链表

141.环形链表题目描述解题思路判断是否存在环,方法很多,这里使用的是快慢指针的方法。快指针比慢指针移动多一个节点1、没有环的情况,可以确定快指针一定比慢指针最先走完2.如果有环的话,则会存在两个指针相遇的时候,只要出现这种情况,可认为是存在环的代码/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; *

2020-08-27 15:43:48

【学习】link和@import的区别

link和@import的区别分为以下四点????加载顺序????从属关系????兼容性????DOM可控性一、link????1、link是HTML提供的标签,不仅可以加载CSS文件,还可以定义RSS,rel连接属性等2、加载页面时,link引入的CSS被同时加载,3、link标签作为HTML元素,不存在兼容性问题,4、可以通过JS操作DOM,来插入link标签改变样式;二、@import????1、@import是CSS提供的语法规则,只有导入样式表的作用2、@import

2020-08-27 10:16:12

【学习】for...in和for...of

for…in和for…of的区别for...in可以遍历数组和对象,for..of不能遍历对象只能遍历数组for...in直接输出i的值为key,如果要输出value需要arr[i],或者obj[i]for...of直接输出i的值为valuefor…infor…in是遍历数组、对象的keylet arr = [1,2,3];for(let i in arr){ console.log(i)}let obj = { name:'jing', age:18};for(le

2020-08-27 09:53:48

如何优雅地实现一个【图片懒加载】

如何实现一个图片懒加载为什么要进行图片懒加载某一页面有大量图片。如果一开始全部加载,则同时请求较多的网络资源,页面会出现很长一段时间的空白,用户体验很不好,所以需要图片懒加载。来减轻服务器的压力,优先加载可视区域的内容,其他部分等进入了可视区域再加载,从而提高性能。实现原理1、所有图片地址src,先设置为某一图片,这样只会请求一次网络资源2、当所需要的图片进入浏览器窗口视野之后,将图片地址src替换为真实的图片地址。步骤分析实现懒加载有四个步骤,如下:1.加载loading图片2.判断哪些

2020-08-26 15:23:53

【记录】实现一个instanceOf

实现一个instanceOf1、判断left,right是不是在一条原型链上2、首先需要知道的是原型链,每个构造函数都有一个prototype属性,指向它的原型对象,同时这个构造函数具备,一个constructor属性,它指向的是它的构造函数3、通过构造函数new一个实例,这个实例会具有__proto__属性,指向的是这个构造函数的原型对象4、instanceof就是实现,判断两个实例是否在一条原型链上5、首先我们需要找到这条原型链上的原型对象6、left表示的是一个实例,而right表示的是

2020-08-22 13:15:23

【css】css实现div两列布局(固定和自适应)(两种方法)

css实现div两列布局——左侧宽度固定,右侧宽度自适应(两种方法)1.实现目标左侧一个导航栏宽度固定,右侧内容根据用户浏览器窗口宽度进行自适应2、思路1、让两个div并排到一行div属于块级元素,在文档标准流中单独占据一行。要想多个div在一行,就可以想办法让div脱离标准流,比如使用float或者absolute;2、一个div宽度固定,另一个div自适应剩下的宽度对自适应宽度的div处理方法是不去设置它的width属性,浏览器会自动计算后让它占一行,接下来给他设置margin-left属

2020-08-19 15:32:05

【学习】css画三角形原来这么简单

css画三角形我们有一个div元素,并给它设置了如下的样式,之所以把边框宽度设置成50px,计算机处理时,在边框交接处,一边占用一半的面积。<div class="div"></div>.div{ width: 0; height: 0; border-top: 50px solid rgb(174, 196, 96); border-right: 50px solid red; border-bottom: 50px

2020-08-19 14:58:46

【算法】17. 打印从1到最大的n位数

剑指 Offer 17. 打印从1到最大的n位数题目描述分析1、要打印从1到最大的n位数,题目要求把打印的数放在一个数组里面,首先要确定这个数组的长度是多少pow() 方法可返回 x 的 y 次幂的值。我们用这个函数方法可以求得数组的长度len = Math.pow(10,n)-12、将长度为len的数组,从1按顺序打印出来Array.from使用箭头语法和映射函数更改元素的值。Array.from({length: len}, (item, index) => inde

2020-08-19 14:33:55

【算法】14、最长公共前缀

14、最长公共前缀题目描述分析1、当输入的strs中无字符串是,返回空 “ ”2、首先初始化定义一个ans,初始化它,使其等于strs[0]3、将字符串数组的每一项字符串中的每个字符,和ans中的每一个字符比对4、一直到不相等,则结束,且用substr()函数,截取到相同的字符串段substr()方法可在字符串中抽取从 start 下标开始的指定数目的字符。5、返回ans,结束图解代码/** * @param {string[]} strs * @return {strin

2020-08-18 15:49:30

【记录】学习Vuex

Vuex1、vuex概述1.1组件之间共享数据的方式父向子:v-bind属性绑定子向父:v-on事件绑定兄弟:EventBus:$on 接收数据的那个组件$emit 发送数据的那个组件1.2 Vuex是什么:Vuex 是一个专为 Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex统一管理状态的好处:能够在vuex中集中管理共享的数据,易于开发和后期的维护能够高效的实现组件

2020-08-17 16:04:47

【学习】CSS实现水平垂直居中的方式

CSS实现水平垂直居中的方式居中元素定宽高一、absolute+负margin1、父元素相对定位,子元素绝对定位2、因为绝对定位的百分百是相对于父元素的宽高,但绝对定位是基于元素的左上角3、借助外边距的负值,设置子元素的外边距为子元素宽度一般的负值优点:好理解,兼容性也比较好缺点:需要知道子元素的宽高后面的代码示例均已这个例子进行改动 <style> .wp{ border:1px solid red; width: 300px;

2020-08-17 10:48:50

【记录】数组排序方法,加深你的排序印象

数组排序选择排序选择最小的那个var arr = [1,4,6,23,8,10];var tempfor(var i=0;i<arr.length-1;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } }console.log(arr)插入排序

2020-08-16 15:44:15

【学习记录】 JS创建对象

【JS 】 创建对象工厂模式构造函数模式原型模式组合使用构造函数模式和原型模式动态原型模式寄生构造函数模式稳妥构造函数模式object构造函数或者对象字面量都可以用来创建单个对象,但是都有缺点:使用一个接口创建很多对象,会产生大量重复代码。人们开始使用工厂模式1、工厂模式object构造函数或者对象字面量都可以用来创建单个对象,但是都有缺点:使用一个接口创建很多对象,会产生大量重复代码。考虑在ECMAScript中无法创建类,开发人员发明一种函数,用函数来封装以特定接口创建对象

2020-08-16 10:37:45

【详解】vue组件间的通信方式

vue组件间的通信方式1、父亲传给孩子1、我们分别创建了一个父亲组件和一个孩子组件2、在父亲组件里定义了一个count: 1,我希望它能够传到子组件中3、首先在父组件中引用import Children from '@/components/Children.vue'4、并且在组件里组册它components:{ Children }5、在模板里<children :countChildren="count"></children>6、可

2020-08-14 17:09:31

【图解】JS执行流程&调用栈

JS执行流程&调用栈栈和执行上下文函数调用:函数调用就是运行一个函数,具体使用方法是使用函数名称跟着一对小括号var a = 2function add(){ var b = 10 return a+b}add()在执行到函数add()之前,javascript引擎为为上面的代码创建全局执行上下文,变量环境中包含了声明的函数和变量,参考下图:(具体的可以看上篇文章JS执行流程&变量提升)代码中的全局变量和函数都保存在全局上下文的变量环境中,然后开始执行

2020-08-14 11:31:58

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享小兵
    分享小兵
    成功上传3个资源即可获取