6. 深度克隆_ES7**_arr.includes('孙悟空')

1. 如何实现深度克隆前端

  • 利用 JSON 方法 (没办法克隆函数数据)

`JSON.parse(JSON.stringify(xxx))`node

  • 自定义方法

检查全部数据类型的方法 `Object.prototype.toString.call(obj).slice(8, -1)`json

  • 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)` : 判断数组中是否包含指定valuerestful

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)]`

相关文章
相关标签/搜索