js基础
在寒夜等候光明
这个作者很懒,什么都没留下…
展开
-
ifram优缺点
iframe的优点:① iframe能够原封不动地把嵌入的网页展现出来。② 如果有多个网页调用iframe,只需要修改iframe的内容,就可以实现对调用iframe的每一个页面内容的更改,方便快捷。③ 网页如果为了统一风格,头部和版本都是一样的,就可以写成一个页面,用iframe来嵌套,可以增加代码的可重用性。④ 如果遇到加载缓慢的第三方内容,如图标和广告等,可以用iframe来解决。iframe的缺点:① 会产生很多页面,不容易管理。② 在几个框架中都出现上下、左右滚动条时,原创 2021-06-11 14:53:21 · 3806 阅读 · 2 评论 -
项目里如何修改element-ui的默认样式
1、去除style里的scoped属性,根据类名修改样式2、样式穿透>>>3、原创 2021-06-10 19:36:52 · 521 阅读 · 0 评论 -
js宏任务和微任务
js中的一个机制,就是遇到宏任务,先执行宏任务,将宏任务放入eventqueue,然后在执行微任务。宏任务和微任务都包含一些事件宏任务:setTimeout,setInterval,Ajax,DOM事件微任务:Promise async/await要想明白这个机制就要理解js单线程。因为JS是单线程语言,只能同时做一件事儿。js任务需要排队顺序执行,如果一个任务时间过长,后边的任务也会等着。假如,我们在请求一个网址时,图片加载很慢,网页总不能一直卡不出来,这个时候就可以...原创 2021-06-10 16:20:41 · 2132 阅读 · 0 评论 -
什么是事件委托
瀑布流:无限上拉列表中,如果给每一个图片绑定点击事件,非常繁琐且消耗内存。所以我们可以把每张图片上的点击事件委托给共同的父元素。事件委托,又名事件代理。事件委托就是利用事件冒泡,就是把子元素的事件都绑定到父元素上。如果子元素阻止了事件冒泡,那么委托也就没法实现了好处:提高性能,减少了事件绑定,从而减少内存占用应用场景 在vue中事件委托我们经常遇到vue中v-for一个列表,列表的每一项都绑定了@click处理事件。我们都知道绑定这么多监听,从性能方面来说是不太好的。那我们...原创 2021-05-30 19:54:51 · 609 阅读 · 0 评论 -
什么是闭包
闭包:简单的理解就是函数中套了一个函数,内层函数可以访问外层函数中的变量有时候需要用到函数内的局部变量,在正常情况下是不能读取到的,这个时候就需要用到闭包。闭包可以封装对象的私有属性和方法,就是可以简单的理解成闭包就是一个私有作用域,可以定义属性和方法,vue中的data就是一种闭包的形式。闭包作为回调函数,可以实现函数的复用优点:闭包因为长期驻扎在内存中。可以重复使用变量,不会造成变量污染缺点:闭包会使函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网.原创 2021-05-30 19:54:10 · 71 阅读 · 0 评论 -
var let const之间的区别
在ES5中,声明变量只有var和function两种形式。但是因为var声明的变量会有一定的缺点(内层变量可能覆盖外层变量的问题以及用来计数的循环变量泄露为全局变量,下面有介绍),ES6提出了使用let和const声明变量,弥补了ES5中var的缺点。1.是否存在变量提升?var声明的变量存在变量提升(将变量提升到当前作用域的顶部)。即变量可以在声明之前调用,值为undefined。let和const不存在变量提升。即它们所声明的变量一定要在声明后使用,否则报ReferenceErr..原创 2021-05-30 19:31:57 · 55 阅读 · 0 评论 -
自由变量和变量提升
一 、自由变量当前作用域外的变量都是自由变量,一个变量在当前作用域没有定义,但是被使用了,就会向上级作用域,一层一层依次查找,直至找到为止,找到这个变量后就会停止,不会继续查找这个变量,如果全局作用域都没有找到这个变量就会报错。这个自由变量查找的过程就是作用域链。二、bianl...原创 2021-05-30 18:42:33 · 267 阅读 · 0 评论 -
作用域、作用域链
一、作用域作用域就是一个变量可以使用的范围,主要分为全局作用域和函数作用域全局作用域就是js中最外层的作用域,任何地方都可以访问,可以反复使用函数作用域是js通过函数创建的一个独立作用域,仅在函数内部可访问,不能反复使用函数可以嵌套,所以作用域也可以嵌套ES6中新增了块级作用域(由大括号包裹,比如:if(){},for(){}等)二、作用域链由多级作用域连续引用形成的链式结果掌管一切变量的使用顺序: 先在局部找,没有,就延作用域向父级作用域找当...原创 2021-05-28 18:59:02 · 90 阅读 · 0 评论 -
this的指向问题
一、概述概述(1)this是每次调用函数的时候都会向函数内部传递进一个隐含的参数。(2)this指向的是一个对象,函数执行的上下文对象。(3)根据函数的调用方式,this的指向也不同。(4)我们可以把this理解为这个函数执行者。注意:ES6中的箭头函数没有this指向的,它里面的 this 是继承外面的环境。作用(1)调用本类中的方法。(2)表示类中的属性。(3)可以使用this调用本类的构造方法。(4)this表示当前对象。————————————————版权声明:本文为C原创 2021-05-28 08:11:37 · 148 阅读 · 0 评论 -
new的创建过程
大概步骤:第一步:创建对象第二步:原型赋值第三步:Foo函数执行,this指向obj对象,给obj添加属性第四步:返回obj对象代码如下: function fn() { // 第一步:创建对象 var obj = {}; // 第二步:原型赋值 obj.__proto__ = Foo.prototype; // 第三步:Foo函数执行,this指向obj对象,给obj添加属性。 let re...原创 2021-05-27 11:19:44 · 181 阅读 · 0 评论 -
JavaScript中的原型与原型链
1、什么是原型原型:每一个javascript对象(除null外)创建的时候,都会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型中“继承”属性。2、prototype在JavaScript中,每个函数都有一个prototype属性,这个属性指向函数的原型对象。,被称为显示原型3、_ _proto_ _每个实例对象都会有_ _proto_ _属性,其被称为隐式原型每一个实例对象的隐式原型_ _proto_ _属性指向自身构造函数的显式原型prototype4.原创 2021-05-26 19:34:11 · 54 阅读 · 0 评论 -
this与call,apply,bind之间的关系
1.浏览器里,在全局范围内的this 指向window对象;2.在函数中,this永远指向最后调用他的那个对象;3.构造函数中,this指向new出来的那个新的对象;4.Call、apply、bind中的this被强绑定在指定的那个对象上;5.箭头函数中this比较特殊,箭头函数this为父作用域的this,不是调用时的this.要知道前四种方式,都是调用时确定,也就是动态的,而箭头函数的this指向是静态的,声明的时候就确定了下来;6.apply、call、bind都是js给函数内置的原创 2021-05-26 19:04:39 · 98 阅读 · 0 评论 -
数组常用的方法
JavaScript数组方法总结isArrary()判断参数是不是数组,返回布尔值-----Array.isArrary()toString()把数组转成字符串------数组名.toString–对象类型数组不能直接转换valueOf()返回数组本身-----数组名.valueOf()push()和unshift()数组名.push():在数组末尾添加元素,返回添加后的数组的长度,原数组会发生改变。数组名.unshift():在数组开头添加元素,返回添加后的数组的长度,原创 2021-05-25 21:17:46 · 54 阅读 · 0 评论 -
argument
1.什么是argumentargument是一个类数组对象,控制台打印出来的是一个数组,但并不是真正的数组,所以说arguments 是一个类数组的对象,我们叫他伪数组。2. argument 操作arguments是个类数组对象,其包含一个length属性,可以用arguments.length来获得传入函数的参数个数。function func() {console.log("The number of parameters is " + arguments.le...原创 2021-05-25 20:37:27 · 922 阅读 · 0 评论 -
数据类型的判断
判断数据类型的方法有四种:typeof、instanceof、 constructor、 prototype方法比较1. 使用typeof操作符。 对一个值使用 typeof 操作符可能返回下列某个字符串,返回的类型都是字符串形式。 (1) undefined:如果这个值未定义 (2) boolean:如果这个值是布尔值 (3) string:如果这个值是字符串 (4) number:如果这个值是数值 (5) object:如果这个值是对象或null .原创 2021-05-25 07:43:05 · 4394 阅读 · 0 评论