js
MeiLuan_yahoho
这个作者很懒,什么都没留下…
展开
-
面试复习之Js复习对象的深浅拷贝
对于基本类型来说,如果使用字面量的方式,那么这个变量只是个字面量,只有在必要的时候才会转换为对应的类型let a = 111 // 这只是字面量,不是 number 类型a.toString() // 使用时候才会转换为对象类型对象(Object)是引用类型,在使用过程中会遇到浅拷贝和深拷贝的问题。对象的浅拷贝(在复制值的时候复制的是指向堆内存的指针地方),而深拷贝在复制的时候在堆内存中...原创 2019-02-17 16:19:50 · 282 阅读 · 0 评论 -
基本类型、引用类型复制变量值
1.、对象是是存放在堆内存中的,而基本类型存放在栈内存中当复制引用类型值(对象)的时候复制的其实是一个指针(指向在内存中的位置)一个例子更好地理解关于引用类型的复制。b=a;使得b的值指向了a指向的堆内存中存放的对象,所以当b改变复制后的对象时,相应的堆内存所表示的该对象改变,所以引起了a的变化;而当我们使用对象自变量语法给b重新定义后,这时候堆内存是重新开辟了一个存放新对象的空间,而b的...原创 2019-03-10 12:24:22 · 294 阅读 · 0 评论 -
es6复习之Promise详解以及相关的面试题
在我们开发的过程中,一般来说我们会碰到的回调嵌套都不会很多,一般就一到两级,但是某些情况下,回调嵌套很多时,代码就会非常繁琐,会给我们的编程带来很多的麻烦,这种情况俗称——回调地狱Promise的含义异步编程,回调地域的一种解决方案,比传统解决方案–回调函数和事件-更合理和更强大。Promise对象具有以下两个特点。1.对象的状态不受外界影响。Promise对象代表一个异步状态,有三种:p...转载 2019-02-21 00:33:18 · 1156 阅读 · 0 评论 -
es6复习let和const
块级作用域为什么需要块级作用域?ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。第一种场景,内层变量可能会覆盖外层变量。var tmp = new Date();function f() { console.log(tmp); if (false) { var tmp = 'hello world'; }}f(); // undef...原创 2019-02-20 15:33:48 · 197 阅读 · 0 评论 -
【前端面试】事件机制(事件冒泡,事件捕获,事件委托/事件代理)
事件机制事件触发三阶段window 往事件触发处传播,遇到注册的捕获事件会触发传播到事件触发处时触发注册的事件从事件触发处往 window 传播,遇到注册的冒泡事件会触发事件触发一般来说会按照上面的顺序进行,但是也有特例,如果给一个目标节点同时注册冒泡和捕获事件,事件触发会按照注册的顺序执行。// 以下会先打印冒泡然后是捕获node.addEventListener( 'cl...原创 2019-02-25 19:31:42 · 1991 阅读 · 0 评论 -
面试复习之Js实现继承
Js中继承的实现主要依靠原型链,但原型链虽然强大,也存在一些问题:1.最主要的问题来自包含引用类型的原型属性。(牵一发动全身)(这也是为什么定义属性我们写在构造函数中,而不写在原型对象中的原因)当我们通过原型去实现继承一个构造函数的时候,就把构造函数里的引用类型的属性给放到原型中去了。这时候我们继承得到的这个新对象它的原型中有引用类型属性,大家的属性的修改就是共享的看下面例子:fun...原创 2019-02-19 16:08:34 · 462 阅读 · 0 评论 -
面试准备Js复习之防抖,节流函数原理
窗口的resize、scroll、输入框内容校验等操作时,如果这些操作处理函数是较为复杂或页面频繁重渲染等操作时,在这种情况下如果事件触发的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用debounce(防抖)和throttle(节流)的方式来减少触发的频率,同时又不影响实际效果。防抖debounce(防抖),简单来说就是防止抖动。当持续触发事件时,debounce ...转载 2019-02-19 09:50:22 · 753 阅读 · 0 评论 -
面试复习之js理解闭包
什么是闭包在高级程序设计中对闭包定义是这样的:“闭包是指有权限访问另一个函数作用域中的变量的函数。“闭包的使用场景:经典例子1function box(){ var arr = []; for(var i=0;i<5;i++){ arr[i] = i; } return arr;}alert(box()) ...原创 2019-02-18 18:16:02 · 227 阅读 · 0 评论 -
面试复习之什么是作用域链,什么是原型链,它们的区别,在js中它们具体指什么?
作用域链作用域是一种规则,规定了变量与函数的可被访问的范围。全局变量拥有全局作用域,局部变量则拥有局部作用域。js是一种没有块级作用域的语言(包括if、for等语句的花括号代码块或者单独的花括号代码块都不能形成一个局部作用域),所以js的局部作用域的形成有且只有函数的花括号内定义的代码块形成的,既函数作用域。通俗解释:作用域是针对变量的,比如我们创建了一个函数,函数里面又包含了一个函数,那么...转载 2019-02-18 14:19:19 · 487 阅读 · 0 评论 -
箭头函数、普通函数中的this指向
彻底理解js中this的指向,不必硬背。首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然网上大部分的文章都是这样说的,虽然在很多情况下那样去理解不会出什么问题,但是实际上那样理解是不准确的,所以在你理解this的时候会有种琢磨不透的感觉),那么接...转载 2019-02-18 12:35:41 · 555 阅读 · 0 评论 -
面试复习js原型,原型链与new关键字原理
创建对象可以用1.object构造函数方法person=new Object();person.firstname=&amp;amp;amp;amp;quot;Bill&amp;amp;amp;amp;quot;;person.lastname=&amp;amp;amp;amp;quot;Gates&amp;amp;amp;amp;quot;;person.age=56;person.eyecolor=&amp;am原创 2019-02-18 00:46:44 · 480 阅读 · 0 评论 -
面试复习之js类型判断
1.typeof 对于基本类型,除了 null 都可以显示正确的类型typeof 对于对象,除了函数都会显示 object对于 null 来说,虽然它是基本类型,但是会显示 object,这是一个存在很久了的 Bug如果我们想获得一个变量的正确类型,可以通过 Object.prototype.toString.call(xx)。这样我们就可以获得类似 [object Type] 的字符...原创 2019-02-17 16:42:09 · 284 阅读 · 0 评论 -
Js数组
1.创建数组使用Array构造函数 new Array( )var a = new Array(“red”,“blue”,“yellow”)var a = new Array(5); a[0]=red;使用数组字面量的方法var colors = [“red”,“blue”];2.检测数组instanceof原理:利用原型链(判断实例的__proto__和Array...原创 2019-03-19 14:38:23 · 184 阅读 · 0 评论