js深拷贝和浅拷贝的实现方式(js浅拷贝和深拷贝原理)

js深拷贝和浅拷贝的实现方式(js浅拷贝和深拷贝原理)p 1 什么是 mvc mvp mvvm 什么是前后端分 amp p

大家好,我是讯享网,很高兴认识大家。



 <p>1&#12289;&#20160;&#20040;&#26159;mvc&#12289;mvp&#12289;mvvm&#65311;&#20160;&#20040;&#26159;&#21069;&#21518;&#31471;&#20998;&#31163;&#65292;&#21069;&#21518;&#31471;&#20998;&#31163;&#30340;&#20248;&#32570;&#28857;&#65311;</p><p>mvc&#26159;model-view-control</p><p><img class="lazyload" src="https://img1.sycdn.imooc.com//5b71441c00015da.jpg" data-original="https://img1.sycdn.imooc.com//5b71441c00015da.jpg" title="" alt="https://img1.sycdn.imooc.com//5b71441c00015da.jpg"></p><p>2&#12289;&#20160;&#20040;&#26159;&#21333;&#39029;&#38754;&#24212;&#29992;&#65311;&#20026;&#20160;&#20040;&#20351;&#29992;&#21333;&#39029;&#38754;&#24212;&#29992;&#65311;&#21333;&#39029;&#38754;&#24212;&#29992;&#36335;&#30001;&#23454;&#29616;&#30340;&#26041;&#27861;&#21644;&#21407;&#29702;&#65311;</p><p>&#21333;&#39029;&#38754;&#24212;&#29992;&#21487;&#20197;&#21483;&#20570;&#21333;&#39029;&#38754;&#22810;&#29255;&#27573;&#20999;&#25442;&#24212;&#29992;&#12290;&#36890;&#36807;&#25511;&#21046;&#39029;&#38754;&#30340;&#21024;&#38500;&#25110;&#32773;&#38544;&#34255;&#26469;&#23454;&#29616;&#21333;&#39029;&#38754;&#24212;&#29992;&#12290;&#21333;&#39029;&#38754;&#22312;&#31227;&#21160;&#31471;&#20351;&#29992;&#27604;&#36739;&#24191;&#27867;&#12290;&#21487;&#20197;&#24102;&#26469;&#26497;&#33268;&#30340;&#20307;&#39564;&#12290;</p><p><img class="lazyload" src="https://img1.sycdn.imooc.com//5b725fa.jpg" data-original="https://img1.sycdn.imooc.com//5b725fa.jpg" title="" alt="https://img1.sycdn.imooc.com//5b725fa.jpg"></p><p><br></p><p>3&#12289;&#20160;&#20040;&#26159;&#21333;&#32447;&#31243;&#65311;&#21333;&#32447;&#31243;&#19982;&#22810;&#32447;&#31243;&#30340;&#21306;&#21035;&#65311;&#20160;&#20040;&#26159;&#36827;&#31243;&#65311;&#36827;&#31243;&#21644;&#32447;&#31243;&#30340;&#21306;&#21035;&#21644;&#32852;&#31995;&#65311;</p><p>&#21333;&#32447;&#31243;&#65306;&#23601;&#26159;&#21516;&#19968;&#26102;&#38388;&#21482;&#33021;&#20570;&#19968;&#20214;&#20107;&#24773;&#12290;JavaScript&#26159;&#21333;&#32447;&#31243;&#30340;&#12290;</p><p>&#22810;&#32447;&#31243;&#65306;&#23601;&#26159;&#21516;&#19968;&#26102;&#38388;&#21487;&#20197;&#21516;&#26102;&#20570;&#22909;&#20960;&#20214;&#20107;&#24773;&#12290;</p><p>&#36827;&#31243;&#20013;&#21253;&#21547;&#22810;&#20010;&#32447;&#31243;&#65292;&#21333;&#32447;&#31243;&#65292;&#22810;&#32447;&#31243;&#37117;&#26159;&#30456;&#23545;&#20110;&#21516;&#19968;&#20010;&#36827;&#31243;&#26469;&#35828;&#30340;&#12290;</p><p>&#19968;&#20010;&#27983;&#35272;&#22120;tab&#39029;&#38754;&#23601;&#26159;&#19968;&#20010;&#36827;&#31243;&#12290;&#36827;&#31243;&#20013;&#21253;&#21547;js&#24341;&#25806;&#32447;&#31243;&#65292;GUI&#32447;&#31243;&#12289;&#20107;&#20214;&#35302;&#21457;&#32447;&#31243;&#31561;&#12290;</p><p>&#36827;&#31243;&#26159;CPU&#36164;&#28304;&#20998;&#37197;&#30340;&#26368;&#23567;&#21333;&#20301;&#12290;</p><p>&#32447;&#31243;&#26159;CPU&#30340;&#26368;&#23567;&#35843;&#24230;&#21333;&#20301;&#12290;</p><p><br></p><p>4&#12289;&#24322;&#27493;&#35843;&#29992;&#30340;&#24120;&#29992;&#26041;&#27861;&#65311;&#20160;&#20040;&#26159;&#24322;&#27493;&#35843;&#29992;&#65311;</p><p>&#22238;&#35843;&#20989;&#25968;&#12289;promise&#12289;async/await&#12289;generate&#12290;</p><p>&#24322;&#27493;&#35843;&#29992;&#20027;&#35201;&#26159;&#36890;&#36807;&#29366;&#24577;&#26469;&#31649;&#29702;&#30340;&#65292;&#21040;&#20102;&#36825;&#20010;&#26102;&#38388;&#28857;&#65292;&#25110;&#32773;&#20219;&#21153;&#23436;&#25104;&#21518;&#65292;&#23601;&#24320;&#22987;&#30528;&#25163;&#24037;&#20316;&#12290;&#20363;&#22914;&#65306;</p><p>setTimeout(function(){},100),&#36825;&#20010;&#20063;&#21487;&#20197;&#30475;&#25104;&#26159;&#24322;&#27493;&#35843;&#29992;&#65292;100ms&#21518;&#24320;&#22987;&#25191;&#34892;&#20989;&#25968;&#20869;&#30340;&#20195;&#30721;&#12290;</p><p><br></p><p>5&#12289;&#23545;webpack&#30340;&#29702;&#35299;&#65311;&#20026;&#20160;&#20040;&#38656;&#35201;webpck&#65311;&#23545;&#26500;&#24314;&#12289;&#25171;&#21253;&#12289;&#32534;&#35793;&#30340;&#29702;&#35299;&#65311;</p><p>webpack&#23427;&#26159;&#20195;&#30721;&#32534;&#35793;&#24037;&#20855;&#65292;&#26377;&#20837;&#21475;&#65292;&#20986;&#21475;&#12289;loader&#21644;&#25554;&#20214;&#12290;&#20854;&#22825;&#29983;&#23601;&#20195;&#30721;&#20998;&#21106;&#12289;&#27169;&#22359;&#21270;&#65292;webpack2.0&#20013;&#21152;&#20837;tree shaking&#65292;&#29992;&#26469;&#25552;&#21462;&#20844;&#20849;&#20195;&#30721;&#65292;&#21435;&#25481;&#27515;&#20129;&#20195;&#30721;&#12290;</p><p>&#26500;&#24314;&#12289;&#25171;&#21253;&#12289;&#32534;&#35793;&#20182;&#20204;&#37117;&#26159;&#20026;&#20102;&#25552;&#39640;&#24320;&#21457;&#25928;&#29575;&#65292;&#35753;&#21069;&#31471;&#26397;&#30528;&#26631;&#20934;&#21270;&#30340;&#36335;&#19978;&#32487;&#32493;&#36808;&#36827;</p><p><br></p><p>6&#12289;git&#24120;&#29992;&#21629;&#20196;&#65311;git&#21644;svn&#30340;&#21306;&#21035;&#65311;github&#26159;&#20160;&#20040;&#65292;npm&#21448;&#26159;&#20160;&#20040;&#65311;<br></p><p>git&#30340;&#20840;&#37096;&#24037;&#20316;&#37117;&#26159;&#22312;&#36825;&#19977;&#20010;&#21306;&#20043;&#38388;&#24037;&#20316;&#12290;&#19977;&#20010;&#21306;&#26159;&#24037;&#20316;&#21306;&#65292;&#26242;&#23384;&#21306;&#12289;&#36828;&#31243;&#20179;&#24211;&#21306;&#12290;</p><p>&#24314;&#31435;&#19968;&#20010;git&#20179;&#24211;&#65306;git init</p><p>clone &#36828;&#31243;&#20179;&#24211;&#65306;git clone +git&#20179;&#24211;&#22320;&#22336;</p><p>&#26412;&#22320;&#20179;&#24211;&#21644;&#36828;&#31243;&#20179;&#24211;&#24314;&#31435;&#36830;&#25509;&#65306;git remote add origin +git&#22320;&#22336;</p><p>&#25289;&#21435;&#36828;&#31243;&#20179;&#24211; git pull origin master(master&#20998;&#25903;)</p><p>&#25552;&#20132;&#21040;&#26242;&#23384;&#21306;&#65306;git add +&#25991;&#20214;</p><p>&#25552;&#20132;&#21040;master&#65292;&#27492;&#26102;Header&#25351;&#38024;&#25351;&#21040;&#36825;&#37324;&#65306;git commit -m '&#25991;&#20214;&#25551;&#36848;&rsquo;</p><p>&#25512;&#36865;&#21040;&#36828;&#31243;&#20179;&#24211;&#65306;git push origin master</p><p>&#26032;&#24314;&#20998;&#25903;&#65306;git branch dev</p><p>&#21024;&#38500;&#26412;&#22320;&#20998;&#25903;&#65306;git branch -d dev&nbsp; (<em>&#21024;&#38500;&#20998;&#25903;&#26102;&#65292;&#24517;&#39035;&#20999;&#25442;&#21040;&#21478;&#19968;&#20010;&#20998;&#25903;&#65292;&#25165;&#33021;&#21024;&#38500;&#24819;&#35201;&#21024;&#38500;&#30340;&#20998;&#25903;</em>)</p><p>&#21024;&#38500;&#36828;&#31243;&#20998;&#25903;&#65306;git push origin -d dev</p><p>&#29256;&#26412;&#22238;&#36864;&#65306;git reset --hard HEAD^&#12290;</p><p><br></p><p>github&#26159;&#20840;&#29699;&#26368;&#22823;&#30340;&#20195;&#30721;&#25176;&#31649;&#24179;&#21488;&#12290;npm&#26159;&#20840;&#29699;&#26368;&#22823;&#30340;&#21253;&#31649;&#29702;&#24037;&#20855;&#12290;</p><p>github&#20351;&#29992;git clone +&#20195;&#30721; &#65292;&#21487;&#20197;&#19979;&#36733;&#20195;&#30721;&#12290;</p><p>npm&#36890;&#36807;npm install &#23433;&#35013;&#65292;&#21487;&#20197;&#30452;&#25509;&#20351;&#29992;&#12290;</p><p><br></p><p>7&#12289;&#20160;&#20040;&#26159;&#26500;&#36896;&#20989;&#25968;&#65311;&#20160;&#20040;&#26159;&#21407;&#22411;&#38142;&#65311;&#21407;&#22411;&#38142;&#30340;&#29992;&#36884;&#65311;&#20160;&#20040;&#26159;&#23545;&#35937;&#65311;&#23545;&#35937;&#30340;&#29992;&#36884;&#65311;</p><p>&#26500;&#36896;&#20989;&#25968;&#20063;&#26159;&#20989;&#25968;&#65292;&#26080;&#38750;&#35753;&#20854;&#20855;&#26377;&#25193;&#23637;&#24615;&#21151;&#33021;&#65292;&#23427;&#20351;&#29992;&#25193;&#23637;&#24615;&#21151;&#33021;&#21448;&#29992;&#20102;&#21407;&#22411;&#38142;&#30340;&#21407;&#29702;&#65292;&#21407;&#22411;&#38142;&#21448;&#29992;&#20102;&#35745;&#31639;&#26426;&#20013;&#26680;&#24515;&#23616;&#37096;&#24615;&#21407;&#29702;&#65292;&#20320;&#33258;&#36523;&#27809;&#26377;&#24448;&#19978;&#32423;&#25214;&#65292;&#19978;&#32423;&#27809;&#26377;&#32487;&#32493;&#24448;&#22806;&#25214;&#65292;&#36825;&#20854;&#20013;&#20854;&#23454;&#38381;&#21253;&#20063;&#29992;&#20102;&#36825;&#31181;&#21407;&#29702;&#12290;</p><p>&#23545;&#35937;&#65306;&#19975;&#29289;&#30342;&#26159;&#23545;&#35937;&#65292;&#23601;&#26159;&#20808;&#24635;&#20307;&#30475;&#24453;&#20107;&#24773;&#65292;&#28982;&#21518;&#20877;&#23616;&#37096;&#12290;&#23545;&#35937;&#20013;&#21448;&#26377;key&#21644;value&#12290;&#20063;&#21487;&#33021;&#21253;&#21547;&#26041;&#27861;&#12290;</p><p><br></p><p>8&#12289;&#23545;http&#30340;&#35748;&#35782;&#65311;&#20174;&#36755;&#20837;url&#21040;&#39029;&#38754;&#23637;&#29616;&#37117;&#21457;&#29983;&#20102;&#20160;&#20040;&#65311;</p><p>&#36825;&#20010;&#21442;&#32771;&#38142;&#25509;&#65306;</p><p><br></p><p>9&#12289;&#20160;&#20040;&#26159;BFC&#65311;&#22914;&#20309;&#23454;&#29616;BFC&#65311;&#30418;&#23376;&#27169;&#22411;&#35748;&#35782;&#65311;&#22914;&#20309;&#23454;&#29616;&#26631;&#20934;&#30418;&#27169;&#22411;&#65311;</p><p>&#36825;&#20010;&#26159;css&#20013;&#30340;&#22359;&#32423;&#26684;&#24335;&#21270;&#19978;&#19979;&#25991;&#12290;</p><p>&#30418;&#23376;&#27169;&#22411;&#26377;&#26631;&#20934;&#30418;&#27169;&#22411;&#21644;IE&#30418;&#27169;&#22411;&#65292;</p><p><img class="lazyload" src="https://img1.sycdn.imooc.com//5b725ec.jpg" data-original="https://img1.sycdn.imooc.com//5b725ec.jpg" title="" alt="https://img1.sycdn.imooc.com//5b725ec.jpg"></p><p>10&#12289;&#20160;&#20040;&#26159;&#26632;&#65292;&#20160;&#20040;&#26159;&#22534;&#65311;&#26632;&#29992;&#26469;&#23384;&#20648;&#20160;&#20040;&#65292;&#22534;&#29992;&#26469;&#23384;&#20648;&#20160;&#20040;&#65311;</p><p>&#26632;&#29992;&#26469;&#23384;&#20648;&#22522;&#26412;&#21464;&#37327;&#31867;&#22411;&#65288;numberstringBoolean耯eind 

讯享网

ull)和指针地址。

堆用来存储对象(key和val)或者函数大括号里面的代码。

栈和堆有下面的连接关系

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;https://img1.sycdn.imooc.com//5b7129ec0001bbfc03830419.jpg
讯享网

11、什么是组件?什么是插件?组件和插件的区别和联系?

组件是模版和UI逻辑的结合。而插件可以是一堆组件的结合,它是框架在功能上的扩展,如vue.prototype.add=function(){}

他们都是在封装、继承、多态思想上产生而来。

区别:

12、对nodejs的认识?什么是事件驱动?什么是非阻塞I/O?

nodejs是基于chrome V8引擎,以事件驱动,非阻塞I/O模型。他是一个可以在服务端运行js的环境。

事件驱动:就是触发一个事件,然后回调,再执行的过程。

非阻塞I/O:以异步来执行函数,先执行同步任务,耗时任务放在事件队列中,以此轮询执行

13、什么是hybrid?为什么使用hybrid?hybrid为什么可以不用审核直接发布?hybrid如何使用?

hybrid:H5与原生端交互混合技术方案

web、native两个人交流,要么web主动,要么native主动,要么web、native都主动。

hybrid本质是在原生的App中,使用webview作为容器承载web页面。这样就需要h5与native实现双向通信,这里我们就需要翻译员,保证我们两者的正常通信—跨语言通讯方案。native使用Java,object-c,h5使用jsbridge。两者通信翻译员就是jsBridge。是要有翻译员就要给他提供最优质的环境webview。一切的翻译也是通过webview的翻译机制。

基于webview的机制和开发的api,有三种方案

14、什么是浅拷贝?什么是深拷贝?如何实现深拷贝?

浅拷贝可以看做是一个快捷方式,实际共用一个内存地址。es6中的Object.assign({target},{obj})就是浅拷贝。

深拷贝相对于新开辟一块内存地址。使用JSON.stringify()可以实现深拷贝。

15、什么是缓存?缓存的分类?cache、localStorage和sessionStorage和理解?

缓存是为了更快的进行磁盘I/O而存在的。有浏览器缓存、CDN缓存、路由缓存、服务器缓存等。

cache中会有http响应头和响应行的信息,如cache-control:max-age:20000。

还有就是cookie。cookie一般浏览器不超过4k ,主要是用来保存用户登陆信息。当发送请求时,会自动把其带上。

而localStorage和sessionStorage是浏览器本地storage中用来存取值的,sessionStorage浏览器关闭了就不存在了,localStorage浏览器关闭依然存在。

16、什么是闭包?闭包的用途?什么是递归?递归调用的用途?

闭包就是有权访问另一个函数作用域内的变量函数都是闭包。

闭包就是一个函数引用另外一个函数的变量,因为变量被引用着所以不会被回收,因此可以用来封装一个私有变量。这是优点也是缺点,不必要的闭包只会徒增内存消耗!另外使用闭包也要注意变量的值是否符合你的要求,因为他就像一个静态私有变量一样

下面的就是闭包

https://img1.sycdn.imooc.com//5b72628900011edd03260248.jpg

小讯
上一篇 2025-04-19 22:07
下一篇 2025-05-12 14:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/170048.html