
JavaScript
文章平均质量分 60
JavaScript
WATTF
这个作者很懒,什么都没留下…
展开
-
什么是堆内存和栈内存
堆内存和栈内存:概念:基本数据类型存储在栈内存中引用数据类型存储在堆内存中区别:栈内存:由操作系统自动分配释放堆内存:一般由程序员手动释放,否则将会由os来回收...原创 2020-04-16 14:40:37 · 1820 阅读 · 0 评论 -
浅拷贝与深拷贝讲解
什么是浅拷贝什么是深拷贝?浅拷贝如果b复制了a,修改b时如果a也跟随b发生改变,那么这个就是浅拷贝,举个在生活中的例子,就好比一台电脑,被人远程连接了,虽然感觉是变成了两个电脑而且都有相同的内容,但是其实电脑的内容存在的硬盘是一个,不管是远程连接的人对电脑进行修改还是本机进行修改,都会影响双方的电脑。深拷贝如果b复制了a,修改b,a没用发生变化,修改a,b也不会变,那么这个就是深拷贝,举个...原创 2020-04-16 09:55:47 · 414 阅读 · 0 评论 -
如何判断当前浏览器的信息
function myBrowser() { var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var isOpera = userAgent.indexOf("Opera") > -1; if (isOpera) { return "Opera" }; //判断是否Opera浏览器 if ...原创 2020-03-19 20:25:19 · 255 阅读 · 0 评论 -
一个预编译理解的小练习
下面程序输出的结果是?if(!( "a" in window )){ var a = 1;}alert(a);代码解析:如果 window 不包含属性 a,就声明一个变量 a,然后赋值为 1。你可能认为 alert 出来的结果是 1,然后实际结果是 “undefined”。要了解为什么,需要知道 JavaScript 里的 3 个概念。首先,所有的全局变量都是 window 的属...原创 2020-03-19 15:45:44 · 279 阅读 · 4 评论 -
mouseover和mouseenter的区别
mouserover事件:鼠标穿过被选中元素会触发mouseover事件,而且鼠标穿过子元素也会触发mouseover事件。(原因:鼠标穿过子元素产生的冒泡事件触发了mouserover事件)moserenter事件:只有在鼠标穿过被选元素时才会触发mouseenter事件,鼠标穿过子元素不会触发...原创 2020-03-19 13:55:33 · 277 阅读 · 0 评论 -
两个对象中相同的值进行赋值,并不改变原有的数据
对象1对象2现在需求要将对象2中的值并且是对象1中有的赋值给对象1中,而且保留对象1中对象1有单对象2并没有的属性原创 2019-12-25 09:54:50 · 2249 阅读 · 1 评论 -
原型模式与工厂模式与构造函数模式的区别
工厂模式function person(name){ var a=new Object(); a.name=name; a.say=function(){ console.log(this.name); } return a; } var p1=person('lie'); console.log(p1);构造模式 fun...原创 2019-12-02 14:19:20 · 508 阅读 · 0 评论 -
arguments.callee有什么用
使用argument是.callee,一般使用在递归函数中,首先要知道什么是递归函数fucntion a(num){ if(num<10){ num++; return a(num); }}但是在上述程序中,有个问题,即函数的名称可能发生改变,导致递归失败,如使a=null的操作,所有现在就可以使用arguments.callee函数只想正在执行的函数对象fucntion ...原创 2019-12-02 14:58:09 · 188 阅读 · 0 评论 -
事件委托(事件代理)是什么?有什么用?
首先要说事件委托,那麽必须要明白两个概念,一个是冒泡事件一个是捕获事件,以下是捕获事件与冒泡事件的代码打印,点击span子元素,首先引发事件捕获事件,触发顺序从最外层的元素开始,逐步前往内层,直到达到实际点击触发的元素,然后触发事件结束,开始事件冒泡,事件冒泡与捕获正好相反,从元素内部开始,逐步冒泡到元素的最外层。<div id="div1"> <span id="spa...原创 2019-12-03 09:50:32 · 785 阅读 · 0 评论 -
async与await有什么用?可以做什么?如何解决异步问题
相信很多人遇到过这样的问题,在方法a中调用了方法b,并且需要方法b中的接口的返回值,但是在程序运行中,方法a已经执行晚了,方法b的接口才刚返回数据,造成方法阿执行错误,这样的问题就是异步问题数据=a;function a(){ this.b(); console.log(数据); //打印出依旧是数据a}function b(){ 数据=调用了接口,获取到接口的返回值b;}结果...原创 2019-12-03 15:18:29 · 2365 阅读 · 0 评论 -
简单讲解arguments是什么
首先arguments是一个类对象数组,注意这是一个类数组!!不是数组,arguments存在于每个函数中,我们可以打印看一下 function fn1(){ console.log(arguments); };这是直接打印fn1函数中的arguments,这是没有往fn1函数中进行参数的传值状态下的打印。那么在传参状态下打印是什么样的?我们可以打印一下function fn...原创 2019-12-04 10:21:44 · 1157 阅读 · 0 评论 -
详解call方法是什么?有什么用?
首先我们先看一段代码function a (){ console.log("i am a");}function b(){ conssole,log("i am b"); a.call(this);}b(); // 运行b,首选打印出 i am b,然后打印i am a由此我们可以看出,b函数继承了a函数的console.log(“i am a”)方法,并且在执行完自己方法后...原创 2019-12-04 11:16:26 · 1735 阅读 · 0 评论 -
什么是函数柯里化?有什么应用?
首先先看一个简单的函数function sum(a,b,c){return a+b+c;}很简单吧,这是一个三数的相加操作,然后我想能不能这样操作也能执行成功三位相加的操作,例如这样传值sum(1)(2)(3),这该怎么做?这其实也是一个比较经典的面试题,答案如下:function sum(x){ return function(y){ return x+y; }}这...原创 2019-12-05 09:57:19 · 2890 阅读 · 2 评论 -
什么是闭包
什么是闭包?简单来说就是,有一个外层函数a,并且函数a中还有个内层函数b,函数a中有个定义变量aa,这个变量aa按理来说应该在函数a执行完,就会被内存销毁,但是在函数a中的函数b,不仅用到了外层函数中的变量aa,而且还return了aa,把变量aa返回到了一个全局的状态下,这就叫做闭包function a(){ var aa='i am a'; return function(){ re...原创 2019-12-06 11:29:56 · 402 阅读 · 0 评论 -
callback的理解
callback函数是什么,从字面就可以读出来,就是回调函数,那什么是回调呢?就是我给函数a一个函数b,让这个函数b在函数a中执行,比如,我让函数a执行一半的时候,再回头调用函数b,这么一个操作就叫做回调。那么就有疑问了,为什么不直接调用函数b呢?如下function a (){ b();}function b(){ console.log('i am b');}上述代码,可以想...原创 2019-12-10 14:17:23 · 314 阅读 · 0 评论 -
一句话弄明白--this关键字
其实,要想弄明白this的用法,只需牢记一句话:this永远指向的是调用它的对象,也就是看谁调用执行的它。下面用几个小例子来表达演示一下var str ='全局变量'function a(){ var str='局部变量'; console.log(this.str); //全局变量 console.log(this) //window }window.a(); //函数...原创 2019-12-12 11:28:31 · 209 阅读 · 0 评论