- 博客(21)
- 收藏
- 关注
原创 JS | 深浅拷贝
浅拷贝创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址 ,所以如果其中一个对象改变了这个地址,就会影响到另一个对象。基本数据类型的浅拷贝就是赋值操作,两个是互不相干的。引用类型的浅拷贝有两种方法。1.Object.assignObject.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。const target = { a: 1 };con
2021-01-20 15:52:29
103
原创 React | ref三种使用方式总结
React提供的这个ref属性,表示为对组件真正实例的引用,其实就是ReactDOM.render()返回的组件实例;需要区分一下,ReactDOM.render()渲染组件时返回的是组件实例;而渲染dom元素时,返回是具体的dom节点。React不提倡过度使用Ref,Ref提供了一种对于react标准的数据流不太适用的情况下组件间交互的方式。第一种:字符串形式(不推荐使用)constructor(props) { super(props); this.showInput = this.sh
2020-12-09 21:46:45
1454
原创 Webpack | babel处理js兼容性
js兼容性处理:npm i babel-loader @babel/preset-env @babel/core core-js -D1. 基本兼容性处理 --> @babel/preset-env 问题:只能转换基本语法,如promise不能转换2. 全部js兼容性处理 -->引入 @babel/polyfill 问题: 我只要解决部分的兼容性问题,但是将所有兼容性代码全部引入,体积太大3. 按需加载:--> core-js
2020-12-07 19:42:18
425
转载 Webpack | webpack配置eslint
eslint 自动检验代码是否规范的一种方式,如果有一点不符合代码规范的地方,就会在打包时报错。如果你不喜欢eslint这种粗暴的方式,可以使用prettier这个插件perttier插件介绍webpack使用eslint 需要安装 eslint eslint-loadernpm i eslint eslint-loader -Dairbnb(一个流行的eslint验证代码的风格) --> 需要下载 eslint-config-airbnb-base eslint-plugin-impor
2020-12-07 18:07:39
517
原创 Webpack | 单独提取css文件,css兼容性处理,压缩css
单独提取css文件总体代码放到最后单独提取css文件需要用到一个plugin: mini-css-extract-pluginnpm i mini-css-extract-plugin -D原本module处理css文件需要 ['style-loader','css-loader'],而使用该插件后不再需要 'style-loader'新添加一个MiniCssExtractPlugin.loader{ test:/\.css$/,
2020-12-06 20:26:18
196
原创 JS | 执行上下文
执行上下文当执行 JS 代码时,会产生三种执行上下文1. 全局执行上下文2. 函数执行上下文3. eval 执行上下文每个执行上下文中都有三个重要的属性1. 变量对象(VO),包含变量、函数声明和函数的形参,该属性只能在全局上下文中访问2. 作用域链(JS 采用词法作用域,也就是说变量的作用域是在定义时就决定了)3. thisvar a = 10function foo(i) { var b = 20}foo()对于上述代码,执行栈中有两个上下文:全局上下文和函数 foo
2020-12-06 20:04:32
67
原创 Node | Buffer缓冲区
Buffer(缓冲区) - Buffer的结构和数组很像,操作的方法也和数组类似 - 数组中不能存储二进制的文件,buffer就是专门用来存储二进制数据 - 使用buffer不需要引入模块,是node中扩充的一个对象 - 在buffer中存储的都是二进制数据,但是在显示时都是以十六进制来显示 - buffer中每一个元素的范围是从00~ff - 即00000000 ~ 11111111的范围,超出ff即取后8位 - 在控制台或页面输出Buffer中的数
2020-12-06 19:59:54
119
原创 Webpack | devServer热部署
npm i webpack-dev-serverconst http = require('html-webpack-plugin');const {resolve} = require('path'); module.exports = { entry: './src/index.js', output:{ filename: 'built.js', path: resolve(__dirname,'build') }, module
2020-12-05 21:00:40
203
原创 JS | new、instanceof、this
new新生成了一个对象链接到原型绑定 this返回新对象在调用 new 的过程中会发生以上四件事情,我们也可以试着来自己实现一个 newfunction create() { // 创建一个空的对象 let obj = new Object() // 获得构造函数 let Con = [].shift.call(arguments) // 链接到原型 obj.__proto__ = Con.prototype // 绑定
2020-12-05 20:45:01
130
原创 JS | 原型
每个函数都有 prototype 属性,除了 Function.prototype.bind(),该属性指向原型。每个对象都有 proto 属性,指向了创建该对象的构造函数的原型。其实这个属性指向了 [[prototype]],但是 [[prototype]] 是内部属性,我们并不能访问到,所以使用 proto 来访问。对象可以通过 proto 来寻找不属于该对象的属性,proto 将对象连接起来组成了原型链。如果你想更进一步的了解原型,可以仔细阅读 深度解析原型中的各个难点。...
2020-12-05 20:39:33
60
转载 Node | npm与cnmp的区别
1、 npm 和 cnpm 的区别相信很多人都不太明白 npm 和 cnpm 到底是什么东东, 为啥在国内要用 淘宝镜像使用 cnpm,(1) 两者之间只是 node 中包管理器的不同哟,(2) npm是node官方的包管理器。cnpm是个中国版的npm,是淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:(3)如果因为网络原因无法使用npm下载,那cnpm这个就派上用场了。一定切记切记,npm和cnpm只是下载器的不同,好像npm用人力板车去拉包,而cnpm却使用货车去
2020-12-05 19:32:09
1454
转载 Node | global全局变量
在浏览器中我们有window对象用于挂载全局的变量,而在Node中,全局变量则为global。定义在 global 上面的变量,不需要在模块中通过 exports 输出,其他模块中也能使用。注意在使用时要谨慎处理,如果滥用则很可能引起变量污染。...
2020-12-05 18:36:33
246
原创 JS | 类型转换
类型转换转Boolean在条件判断时,除了 undefined, null, false, NaN, ‘’, 0, -0,其他所有值都转为 true,包括所有对象。对象转基本类型对象在转换基本类型时,首先会调用 valueOf 然后调用 toString。并且这两个方法你是可以重写的。let a = { valueOf() { return 0 }}当然你也可以重写 Symbol.toPrimitive ,该方法在转基本类型时调用优先级最高。let a = {
2020-12-04 20:49:02
157
原创 Webpack | webpack.config.js配置及基础module、plugins打包
下载module和pluginsnpm i style-loader css-loader less-loader -Dnpm i html-webpack-plugin -D/* 要新建src、build文件夹 在src下新建入口文件 loader: 1.下载 2.使用(配置loader) plugins: 1.下载 2.引入 3.使用*/const {resolve} = require('path');const HtmlWebpackPlug
2020-12-04 20:35:45
518
原创 Node | 简单新建服务器及读写文件
写文件var fs = require('fs');fs.writeFile('./data/out.md','大家好 我是Node.js', function(error){ if(error){ console.log('写入文件失败\n',error); } else{ console.log('文件写入成功'); } });读文件var fs = require('fs');fs.readFile('./dat
2020-12-04 20:25:41
173
1
原创 Node | node中的js简单总结
1.EcmaScript 没有DOM BOM2.核心模块 NODE为JavaScript提供了很多服务器级别的api,绝大多数都被包装到了一个具名的核心模块中了 例如文件操作的 fs 核心模块,http服务器构建的 http 模块,path路径操作模块,os操作系统信息模块。。。 require exports3.用户自定义模块 require是一个方法 用来加载模块 在node中 模块有三种: 具名的核心模块。
2020-12-04 20:20:09
74
转载 使用webpack打包报ERROR in TypeError: Cannot read property ‘tap‘ of undefined
刚开始学webpack,然后到打包html这一块,我用的是webpack5.9.0,HtmlWebpackPlugin4.5.0,会报错( TypeError: Cannot read property ‘tap’ of undefined)如下图:解决方案:在网上查了很多相关资料,然后试了试,结果就是版本不对导致的报错,具体为什么,我也不晓得了。我把5.9.0降为4.44.2(npm install webpack@4.44.2 -g),注意 一定把开发的也要降哦(npm install webp
2020-12-04 18:16:19
2718
原创 Webpack | 开发环境和生产环境基础指令
开发环境和生产环境是有区别的,开发完成后的项目还需要再进行一些其它处理才能构建到生产环境。新建src、build文件夹index.js位于src下index.js : webpack入口起点文件1. 运行指令: 开发环境:webpack ./src/index.js -o ./build/built.js --mode=development webpack会以 ./src/index.js 为入口文件开始打包 打包后输出到 ./build/built.js
2020-12-04 09:53:41
161
原创 JS | Typeof
Typeoftypeof 对于基本类型,除了 null 都可以显示正确的类型Symbol值通过Symbol函数生成,只要属性名是属于Symbol类型的,就是独一无二的,可以保证不会与其他属性名产生冲突。typeof 1 // 'number'typeof '1' // 'string'typeof undefined // 'undefined'typeof true // 'boolean'typeof Symbol() // 'symbol'typeof b // b 没有声明,但是
2020-12-03 21:03:54
83
原创 JS | 内置类型
内置类型JS 中分为七种内置类型,七种内置类型又分为两大类型:基本类型和对象(Object)。基本类型有六种: null,undefined,boolean,number,string,symbol。其中 JS 的数字类型是浮点类型的,没有整型。并且浮点类型基于 IEEE 754标准实现,在使用中会遇到某些 Bug。NaN 也属于 number 类型,并且 NaN 不等于自身。对于基本类型来说,如果使用字面量的方式,那么这个变量只是个字面量,只有在必要的时候才会转换为对应的类型字面量表示如何表达这
2020-12-02 23:10:25
109
原创 VS Code Python问题 ModuleNotFoundError
ModuleNotFoundError但ctrl能直接查看,却用不了。别的库都可以,就tensorly不行
2020-03-22 15:56:05
2923
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人