自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Node.js bcrypt安装报错

原来的安装命令:npm i bcrypt报了很多ERR,将bcrypt更换为bcryptjs安装成功

2021-11-01 11:01:19 628

原创 Nodejs express body-parser req.body为undefined

原来代码是这样:// 引入express包const express = require("express");// 实例化expressconst app = express();// 使用routesapp.use("/api/users", users);// 使用body-parser中间件app.use(express.json());app.use(express.urlencoded({extended: false}));请求过来打印req.body 为unde..

2021-11-01 10:52:57 1620 2

转载 Not Found - GET https://registry.npmjs.org/- Not found

解决方法:切换为淘宝镜像源即可npm config set registry https://registry.npm.taobao.org

2021-10-16 17:47:39 10897 1

原创 扩展运算符 ...

扩展运算符 (...) 用于取出参数对象中的所有可遍历属性。能将数组对象转换为逗号分隔的参数序列。1.合并数组let arr = [1,2,3];let arr2 = [4,5,6];console.log([...arr,...arr2]); // [1,2,3,4,5,6]2.克隆数组let arr = [1, 2, 3];let arr2 = {...arr};console.log(arr2); [1,2,3]3.将字符串转换为数组let str = "abc.

2021-10-14 19:48:59 666

原创 深拷贝和浅拷贝的区别和实现方法

首先了解下JS里面有两种数据类型,基本数据类型(Number,String,boolean,Undefined,Null,Object)和引用数据类型(Object,Function,Array)。基本数据类型就是简单的赋值,不存在深拷贝和浅拷贝。比如将a赋值给b,a和b都保存了一样的值,且不会彼此影响。基本数据类型名字和值都保存在栈内存中。let a = 1;let b = a;console.log(a, b) // 1 1a = 2;console.log(a, b) // 2 1

2021-10-14 19:25:13 167

原创 rest参数

ES6引入rest参数,用于获取函数的实参,用来代替arguments,当函数调用时,用于接收不确定的参数。function data(a, b, c, ...args) { // 必须放在最后 console.log(args); // (2) [4,5]}data(1, 2, 3, 4, 5);可以用来获取箭头函数的实参let A = (...a) => { console.log(a);}A(3,82,32,11323); // [3, 82, 32, 11

2021-10-14 19:00:02 82

原创 函数参数的默认值设置

es6允许给函数参数赋初始值1. 形参默认值,具有默认值得形参,传递的时候一般靠后。function add(a, b, c = 1) { return a + b + c;}console.log(add(1, 2)); // 4console.log(add(1, 2, 3)); // 62. 与解构赋值相结合function person({name, age = 15, sex}) { console.log(name); // xxx consol

2021-10-14 17:26:57 324

原创 对象的简化写法

ES6允许简化的对象写法* 省略同名的属性值* 省略方法的functionlet name = "xxx";let sayHi = function() { console.log("hello world!");}let obj = { name, // name : name sayHi, fn1() { // fn1 = function() alert(this.name);}}...

2021-10-14 15:16:39 109

原创 模板字符串

模板字面量 是允许嵌入表达式的字符串字面量。你可以使用多行字符串和字符串插值功能。1.多行字符串console.log(`string text line 1string text line 2`);// "string text line 1// string text line 2"2.插入表达式var a = 5;var b = 10;console.log(`Fifteen is ${a + b} andnot ${2 * a + b}.`);// "Fifteen

2021-10-14 15:10:16 68

原创 变量的解构赋值

解构赋值语法是一种 Javascript 表达式。通过解构赋值,可以将属性/值从对象/数组中取出,赋值给其他变量。1.数组的解构赋值let arr = [1, 2, 3];let [a, b, c] = arr;console.log(a); // 1console.log(b); // 2console.log(c); // 32.对象的解构赋值var o = {p: 42, q: true};var {p, q} = o;console.log(p); // 42c.

2021-10-14 14:58:11 138

原创 const声明常量及特点

1.必须赋初始值const n;n = 1;console.log(n); // missing = in const declaration2.一般用大写3.不能改变值const n = 1;n = 2;console.log(n); // invalid assignment to const 'n'4.块级作用域{ const n = 1;}console.log(n); // n is not defined5.可以对引用类型的值做修改c

2021-10-14 14:39:57 222

原创 let变量声明和声明特性

1.变量不能重复声明<script> let n = 1; let n = 2; console.log(n); // Identifier 'n' has already been declared</script>2.作用于块级作用域{ let n = 1;} console.log(n); // n is not defined3.没有变量提升cosole.log(n); // Cannot access 'n' befor

2021-10-14 14:28:56 161

原创 js防抖和节流

防抖和节流是属于JS性能优化的知识。什么是防抖呢?在以下代码,给input输入框监听oninput事件,你会发现每当input的value发生改变都会触发oninput事件,在控制台就会无限制的打印输入结果。<input type="text" id="ipt"> <script> var ipt = document.querySelector("#ipt"); ipt.oninput = function() { console.log(th

2021-10-13 22:42:37 112

原创 ajax技术

第 1 章:原生 AJAX1.1AJAX 简介AJAX 全称为 AsynchronousJavaScriptAndXML,就是异步的 JS 和 XML。 通过 AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。 AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。1.2XML 简介XML 可扩展标记语言。 XML 被设计用来传输和存储数据。 XML 和 HTML 类似,不同的是 HTML 中都是预定义标签,而 XML 中没有预定义标签,全都是自定

2021-10-13 18:06:00 264

原创 promise构造函数

promise是一门新的技术(ES6规范),是JS中进行异步编程的新解决方案(旧方案是使用回调函数)。promise从语法上来说是一个构造函数,从功能上来说,promise对象用来封装一个异步操作并可以获取其成功/失败的结果值。异步编程有哪些? filesystem操作,数据库操作,ajax请求,定时器。promise的优点:1.指定回调函数的方式更加灵活 。回调函数必须在异步任务前指定,而promise的执行流程为:启动异步任务 =》返回promise对象 =》给promise对象绑定

2021-10-10 22:36:03 763

原创 前端面试题(实习)(一)

1 前端需要注意哪些SEO合理的 title 、 description 、 keywords :搜索对着三项的权重逐个减⼩, title 值强调重点即可,重要关键词出现不要超过2次,⽽且要靠前,不同⻚⾯ title 要有所不 同; description 把⻚⾯内容⾼度概括,⻓度合适,不可过分堆砌关键词,不同⻚⾯ description 有所不同; keywords 列举出重要关键词即可语义化的 HTML 代码,符合W3C规范:语义化代码让搜索引擎容易理解⽹⻚重要内容 HTML 代码放在Y前:

2021-09-28 23:02:36 214

转载 箭头函数的特点

1.箭头函数都是匿名函数2.箭头函数没有自己的this指向箭头函数在全局作用域声明,所以它捕获全局作用域中的this,this指向window对象。箭头函数的 this 永远指向其上下文的 this ,任何方法都改变不了其指向,如 call() , bind() , apply()。3.箭头函数不能作为构造函数使用4.箭头函数不绑定arguments,取而代之用rest参数…解决每一个普通函数调用后都具有一个arguments对象,用来存储实际传递的参数。但是箭头函数并没有此对象。

2021-09-24 15:44:48 2089

转载 VSCode好用的快捷方式

1、一次搜索所有文件的文本Windows:Ctrl+Shift+FMac:Command+Shift+F2、重新打开关闭的编辑页面Windows:Ctrl+Shift+TMac:command+Shift+T3、通过匹配文本打开文件Windows:Ctrl+TMac:command+T4、删除上一个单词要删除前一个单词,可以按Ctrl + Backspace(Mac:option + delete)。这在...

2021-09-24 15:32:39 170

原创 Vue watch深度监测时handler新值和旧值一样

<div id="app"> <h4>a的值是{{numbers.a}}</h4> <input type="button" value="n++" @click="numbers.a++"></div><script> const vm = new Vue({ el: "#app", data: { numbers : { .

2021-09-24 11:32:26 2478 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除