6. 深度克隆_ES7**_arr.includes('孙悟空')
1. 如何实现深度克隆
- 利用 JSON 方法 (没办法克隆函数数据)
`JSON.parse(JSON.stringify(xxx))`
- 自定义方法
检查所有数据类型的方法 `Object.prototype.toString.call(obj).slice(8, -1)`
function deepClone(obj) {
let newObj = null;
//判断obj是否是对象或者数组
const type = checkType(obj);
if (type === 'Object') {
//创建一个新对象
newObj = {};
} else if (type === 'Array') {
newObj = [];
} else {
return obj;
} //遍历
for (let key in obj) {
//获取属性的值
const value = obj[key]; //检查属性值是否是对象或者数组
if (checkType(value) === 'Object' || 'Array') {
//特殊处理
newObj[key] = deepClone(value);
} else {
//基本数据类型的处理
newObj[key] = value;
}
}
return newObj;
}
2. ES7
指数运算符(幂): **
`Array.prototype.includes(value)` : 判断数组中是否包含指定value
3. nodejs
是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
特点:
搭建服务器
异步的非阻塞的I/O(I/O线程池)
事件循环机制
单线程
跨平台
缺点:
回调函数嵌套太多、太深(俗称回调地狱)
单线程,处理不好CPU 密集型任务
应用场景:
I/O 密集型的领域:如 Web 开发前端渲染,前端构建。
低延迟的网络应用:如restful API、即时聊天。
现阶段由淘宝牵头使用量越来越多,越来越多公司都使用了nodejs技术优化服务器,它日趋重要
4. 谈谈 commonjs 模块化语法
暴露模块的内容
暴露的本质 module.exports 指向的值 默认为{}
module.exports
module.exports = xxx
module.exports.xxx = xxx
exports
exports.xxx = xxx
引入其他模块
require('模块路径')
自定义模块路径必须以 ./ 或 ../ 开头,如果不是就报错 Cannot find module 'module1'
模块文件后缀名可以省略, js 文件 json 文件 node 文件,只有以上三种文件,文件后缀名可以省略
5. 数组去重的方法
`[...new Set(arr)]`
6. 深度克隆_ES7**_arr.includes('孙悟空')的更多相关文章
- [转载] javascript实现深度克隆
js一般有两种不同数据类型的值: 基本类型(包括undefined,Null,boolean,String,Number),按值传递: 引用类型(包括数组,对象),按址传递,引用类型在值传递的时候是内 ...
- js对象的深度克隆
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- javascript中对象的深度克隆
记录一个常见的面试题,javascript中对象的深度克隆,转载自:http://www.2cto.com/kf/201409/332955.html 今天就聊一下一个常见的笔试.面试题,js中对象的 ...
- Java的深度克隆和浅度克隆
说到克隆,其实是个比较简单的概念,跟现实生活正的克隆一样,复制一个一模一样的对象出来.clone()这个方法是从Object继承下来的,一个对象要实现克隆,需要实现一个叫做Cloneable的接口,这 ...
- Java List的深度克隆
关于java List的深度克隆 List是java容器中最常用的顺序存储数据结构之一.有些时候我们将一组数据取出放到一个List对象中,但是可能会很多处程序要读取他或者是修改他.尤其是并发处理的话, ...
- javascript最新深度克隆对象方法
javascript最新深度克隆对象方法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu ...
- javascript深度克隆与javascript的继承实现
1.javascript深度克隆: //注意这里的对象包括object和array function cloneObject(obj){ var o = obj.constructor === Arr ...
- 深度克隆---js对象引用
首先,我们要知道,javascript中除了基本类型(number,string,boolean,null,undefined)之外就是引用类型了,也可以说就是js对象了. 引用类型的赋值其实是对象保 ...
- Javascript深度克隆一个对象
Javascript中的对像赋值与Java中是一样的,都为引用传递.就是说,在把一个对像赋值给一个变量时,那么这个变量所指向的仍就是原来对 像的地址.那怎么来做呢?答案是“克隆”. 克隆有两种方法:一 ...
随机推荐
- DirectX11--HLSL中矩阵的内存布局和mul函数探讨
前言 说实话,我感觉这是一个大坑,不知道为什么要设计成这样混乱的形式. 在我用的时候,以row_major矩阵,并且mul函数以向量左乘矩阵的形式来绘制时的确能够正常显示,并不会有什么感觉.但是也有人 ...
- OpenStack虚拟机冷迁移与热迁移
一.虚拟机迁移分析 openstacvk虚拟机迁移分为冷迁移和热迁移两种方式. 1.1冷迁移: 冷迁移(cold migration),也叫静态迁移.关闭电源的虚拟机进行迁移.通过冷迁移,可以选择将关 ...
- JS实现定时任务,每隔N秒请求后台——setInterval定时和ajax请求
DiGui = function (param) { $.ajax({ success: function (returnValue) { window.setInterval("fnSet ...
- MySQL学习7 - 外键的变种 三种关系
一 介绍 二 如何找两张表之间的关系 三 表的三种关系 1.书和出版社 2.作者和书籍的关系 3.用户和博客 本节的重点 如何找出两张表之间的关系 表的三种关系 一 介绍 因为有foreign key ...
- 在vue中引入scss
先npm安装stylus和stylus-loader (我安装后,报错提示缺少stylus,所以第一步安装stylus,如果没有提示可省略第一步) 1.到 package.json ----- de ...
- Python日志模块logging用法
1.日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL. DEBUG:详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期运行 ...
- vivado中使用MMCM ip核
1.在project中选择IP Catalog 在IP Catalog中选择FPGA Features and Design----->Clocking------>Clocking Wi ...
- PID控制器开发笔记之十三:单神经元PID控制器的实现
神经网络是模拟人脑思维方式的数学模型.神经网络是智能控制的一个重要分支,人们针对控制过程提供了各种实现方式,在本节我们主要讨论一下采用单神经元实现PID控制器的方式. 1.单神经元的基本原理 单神经元 ...
- 《剑指offer》丑数
本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:
- Postman 安装及使用入门教程(我主要使用接口测试)
1.Postman 安装及使用入门教程(我主要使用接口测试)Postman的English官网:https://www.getpostman.com/chrome插件整理的Postman中文使用教程( ...