å…¶ä»– ======================================== 命令执行 ---------------------------------------- Node.jsä¸child_process.exec命令调用的是 ``/bin/sh`` ,故å¯ä»¥ç›´æŽ¥ä½¿ç”¨è¯¥å‘½ä»¤æ‰§è¡Œshell å调试技巧 ---------------------------------------- - 函数é‡å®šä¹‰ ``console.log = function(a){}`` - 定时æ–点 ``setInterval(function(){debugger}, 1000);`` å¯¹è±¡æ‹·è´ ---------------------------------------- JavaScriptä¸çš„对象拷è´åˆ†ä¸ºæµ…æ‹·è´å’Œæ·±æ‹·è´ã€‚ æµ…æ‹·è´å¯¹ä¸€ä¸ªå¯¹è±¡è¿›è¡Œæ‹·è´æ—¶ï¼Œä»…ä»…æ‹·è´å¯¹è±¡çš„引用进行拷è´ï¼Œä½†æ˜¯æ‹·è´å¯¹è±¡å’Œæºå¯¹è±¡è¿˜æ˜¯å¼•用åŒä¸€ä»½å®žä½“。其ä¸ä¸€ä¸ªå¯¹è±¡çš„æ”¹å˜éƒ½ä¼šå½±å“到å¦ä¸€ä¸ªå¯¹è±¡ã€‚ æ·±æ‹·è´æ‹·è´ä¸€ä¸ªå¯¹è±¡æ—¶ï¼Œä¸ä»…仅把对象的引用进行å¤åˆ¶ï¼Œè¿˜æŠŠè¯¥å¯¹è±¡å¼•用的值也一起拷è´ã€‚æºå¯¹è±¡ä¸Žæ‹·è´å¯¹è±¡äº’相独立,其ä¸ä»»ä½•一个对象的改动都ä¸ä¼šå¯¹å¦å¤–ä¸€ä¸ªå¯¹è±¡é€ æˆå½±å“。 深拷è´å¯ä»¥åŸºäºŽ ``for-in`` / ``object.assign()`` / 拓展è¿ç®—符 ``...`` / ``JSON.parse(JSON.stringify())`` ç‰æ–¹å¼å®žçŽ°ã€‚å…¶ä¸å‰ä¸‰ç§æ–¹å¼åªå¯¹ç¬¬ä¸€å±‚åšæ·±æ‹·è´ï¼Œè‹¥å¯¹è±¡ç»“æž„è¾ƒä¸ºå¤æ‚,则需è¦ç”¨é€’归的方å¼å¯¹æ›´æ·±çš„层次进行拷è´ã€‚ 常è§Sink ---------------------------------------- - child_process - eval - exec - execSync