js基础

对象的拼接
Object.assign(a, b)
// 拼接后第一个拼接对象a 的值也会是拼接的值或者理解为把 b 的值合并到 a 中
Object.assign({},a, b) // 解决
遍历赋值法 和 $.extend([deep], obj1, obj2) 相同,将对象合并到第一个对象中。

// 代码逻辑:
// 1-循环对象n中的每一个对应属性。
// 2-确认对象n中存在该属性
// 3-确认对象o中不存在该属性
var extend=function(o,n){
   for (var p in n){
        if(n.hasOwnProperty(p) && (!o.hasOwnProperty(p) ))
            o[p]=n[p];
    }
}; 

数组的去重合并,参考链接
https://blog.csdn.net/weixin_40805079/article/details/84850745

深拷贝,浅拷贝【数组+数组对象】
深拷贝的核心思想就是将引用类型展开成基本类型,再进行拷贝。
数组中的每一项值必须是基本类型
数组:
浅拷贝
1- arr1.slice(); arr1.concat();
slice和concat这两个方法,仅适用于对不包含引用对象的一维数组的深拷贝

2- ES6 的展开符:[…arr1]

3-

arr1.forEach(item=>{
   arr2.push(item) 
});

4-

const _ = require('lodash');// 必须
arr2 = _.clone(arr1) 

5- 通过遍历数组

function deepCopy(arry1, arry2){
  var length = arry1.length;
  for(var i = 0;i<length;i++){
    arry2[i] = arry1[i];
  }
}
deepCopy(arr1, arr2);

深拷贝对象数组:

// 方法一
let two_brand = one_brand.map(o => Object.assign({}, o));
// 方法二
let two_brand = one_brand.map(o => ({...o}));
// 方法三(推荐)
// 下载
npm i lodash --S
// 导入(哪个页面需要就在哪引入)
import _ from 'lodash'  // 深拷贝
// 使用
let two_brand = _.cloneDeep(one_brand);

//(不推荐)
let two_brand = JSON.parse(JSON.stringify(one_brand))

主要缺点是,只限于处理可被 JSON.stringify() 编码的值。
JSON.stringify() 将编码 JSON 支持的值。包含 Boolean,Number,String,对象,数组。其他任何内容都将被特殊处理。

undefined,Function,Symbol 时,它被忽略掉
Infinity,NaN 会被变成 null
Date 对象会被转化为 String (默认调用date.toISOString())

// 拓展
问:为什么JSON.stringify() 编码 JSON 支持的值那么少呢?

因为JSON是一个通用的文本格式,和语言无关。设想如果将函数定义也stringify的话,如何判断是哪种语言,并且通过合适的方式将其呈现出来将会变得特别复杂。特别是和语言相关的一些特性,比如JavaScript中的Symbol。

判断是否是数组,参考链接
https://www.cnblogs.com/zhizhic/p/9988947.html

常见http请求错误提示,参考链接
https://blog.csdn.net/CSDN_000000000000001/article/details/94341596

请求报504[服务器端错误,网页请求超时] / 405错误[请求方式错误]
400 表示语义有误,当前请求无法被服务器理解
505 HTTP协议不受支持
500 内部服务器错误
304 请求的网页与上次对比没有更新,不是错误,只是用了缓存的数据,不用下载了

请求头, header

比如在 vue 项目中,
1> 在请求时单独添加
Vue.prototype.$token = getCookie(“audToken”); // main.js
{ header: { token: ‘token’ } } // axios 请求时

2> 所有请求前默认添加
axios.defaults.headers.common[“token”] = getCookie(‘audToken’); // main.js

js基础js基础 itBellah 发布了2 篇原创文章 · 获赞 0 · 访问量 36 私信 关注
上一篇:平平淡淡从从容容才是真?


下一篇:python_类与对象学习笔记