
JavaScript
不秃头的小李同学
这个作者很懒,什么都没留下…
展开
-
axios起步
Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。相关特性:从浏览器创建 XMLHttpRequests从 node.js 创建 http 请求支持 Promise API 拦截请求和响应转换请求和响应数据取消请求自动转换JSON数据客户端支持防御XS.原创 2022-01-23 20:57:59 · 597 阅读 · 0 评论 -
express跨域
Access to fetch at 'http://localhost:3000/fetch/fetchGet/456' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode原创 2022-01-23 16:10:52 · 716 阅读 · 0 评论 -
Promise异步编程实践
Promise是一个对象,可以获取异步操作的信息,可以避免多次异步调用嵌套问题,同时Promise提供了简洁的API,使得控制异步操作更加方便问题举例:以下连续调用三个接口请求,由于异步的关系,最终显示的结果不是按顺序的 $.ajax({ url: "http://localhost:3000/promise_test1", success: function(result) { console.log(result); .原创 2022-01-23 01:30:36 · 641 阅读 · 0 评论 -
js闭包简介
一、执行上下文于和作用域链执行上下文是JavaScript执行一段代码时的运行环境,比如调用一个函数,就会进入这个函数的执行上下文,然后确定该函数在执行期间用到的变量:this、变量、函数等。JavaScript代码在编译阶段,会为其创建上下文执行环境,而该执行环境所用到的 变量信息都存在执行上下文环境中的环境变量对象中函数执行时,每个执行上文中都会有一个包含其中变量的对象。全局上下文中的叫变量对象,它会在代码执行期间始终存在。而函数局部上下文中的叫活动对象只在函数执行期间存在。举例:func原创 2021-12-27 00:59:10 · 493 阅读 · 0 评论 -
TypeError: Cannot read property ‘push‘ of undefined
问题原因this没有指向data,出现this作用域问题(解决方法,在函数外层const that = this,利用that代替this)原代码:报错[system] TypeError: Cannot read property 'push' of undefined at Function.success (pages-index-index.9f60a9e14becec7424f4.hot-update.js:59) at chunk-vendors.js:186 at Object.I.原创 2021-08-06 09:59:30 · 8733 阅读 · 0 评论 -
js 数组删除指定的值
方法利用indexOf以及splice来删除指定的值案例var array = [2, 5, 9];var index = array.indexOf(5);array.splice(index, 1);}splice两个参数、第一个开始删除的下标、第二个删除的数量原创 2021-08-05 14:24:21 · 1564 阅读 · 0 评论 -
nodejs利用163邮箱发送邮件
第一步获取163IMAP/SMTP授权码密匙第二步导入需要的模块 modemailer代码案例:源自'use strict';const nodemailer = require('nodemailer');const moment = require('moment');const path = require('path'); nodemailer.createTestAccount((err, account) => { // 填入自己的账号和密码 let原创 2020-12-26 22:36:33 · 3734 阅读 · 0 评论 -
给元素绑定点击事件,该事件函数被调用多次
问题描述:给元素绑定点击事件,函数被调用多次在页面中为一个元素绑定事件,事件执行后页面未刷新且元素还在,然后你再次点击,元素又被绑定个一次点击事件,这样第二次点击就会执行两次,以此类推。解决方法unbind() 方法移除被选元素的事件处理程序。该方法能够移除所有的或被选的事件处理程序,或者当事件发生时终止指定函数的运行。ubind() 适用于任何通过 jQuery 附加的事件处理程序$(".submitfeedback").unbind();$('.submitfeedback').click(f原创 2020-12-26 21:39:49 · 400 阅读 · 2 评论 -
利用ajax动态生成元素Jquery无法获取新创建的元素的解决方法
问题描述:当利用ajax技术动态创建元素时,jQuery无法获取到元素①创建元素ajax代码:$.ajax({ url: '/users/getdata', method: 'post', dataType: 'json', success: function(data) { let temp = ''; console.log(data); // 遍历data数据 for (var k = 0; k &原创 2020-12-18 20:47:52 · 1053 阅读 · 1 评论 -
使用req.session.xxx时出现 Cannot set property ‘xxxx‘ of undefined
问题如下查看app.js 代码发现引入的session模块 为灰色没有使用查看express-session中的官方文档其中req.session使用案例为:// Use the session middlewareapp.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))// Access the session as req.sessionapp.get('/', function(req, res, n原创 2020-12-14 20:24:24 · 661 阅读 · 2 评论 -
express框架利用ajax技术前前端echarts传值
前端页面:<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="width: 600px;height:400px;"></div><script type="text/javascript"> // 基于准备原创 2020-11-26 21:16:03 · 386 阅读 · 0 评论 -
使用Promise封装Ajax操作
请使用Promise封装Ajax操作原始的Ajax操作如下:原型:var onSuccess = function(result){}; //成功的回调var onFail = function(error){}; //失败的回调var req = new XMLHttpRequest();req.open("POST", "www.baidu.com", true);req.onload = function(){ if(req.readyState === 4 && r转载 2020-11-13 20:55:43 · 487 阅读 · 0 评论 -
bcrypt密码加密
const bcrypt = require('bcrypt');//异步函数async function run() { //生成随机字符串 //genSalt 方法接受一个数值作为参数 //数值越大 生成的随机字符串复杂度越高 //数值越小 生成的随机字符串复杂度越小 //默认值是10 //放回生成的随机字符串 const salt = await bcrypt.genSalt(10); // bcrypt.hash(原文,随机字符串)原创 2020-11-04 15:04:54 · 1141 阅读 · 0 评论 -
express_post表单实例
前端代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>express_post请求</title></head><body>原创 2020-10-31 17:02:30 · 965 阅读 · 0 评论 -
node.js res.end呈现出为中文乱码
问题原因:乱码,中文编码问题原代码:const http = require('http');//const app = http.createServer();app.on('request', (req, res) => { res.writeHead(200, { 'content-type': 'text/html' }); if (req.url == '/' || req.url == '/index') { res.en原创 2020-10-25 20:41:35 · 2413 阅读 · 1 评论 -
复制(克隆)节点node . cloneNode ( )深拷贝浅拷贝
node.cloneNode ()方法返回调用该方法的节点的-一个副本。也称为克隆节点/拷贝节点如果括号参数为空或者为false,则是浅拷贝,即只克隆复制节点本身,不克隆里面的子节点。如果括号参数为true,则是深度拷贝,会复制节点本身以及里面所有的子节点。①浅拷贝<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>clonetest</t原创 2020-08-31 20:56:03 · 5875 阅读 · 1 评论 -
echarts.min.js下载
①登录下载官网②定制下载划到最下面选择在线定制③编译打包下载原创 2020-08-11 12:37:04 · 3482 阅读 · 1 评论 -
更改背景图片
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { .原创 2020-08-06 11:16:41 · 303 阅读 · 0 评论 -
tab栏切换练习
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title></title> <style> ul { list-st.原创 2020-08-06 10:46:11 · 331 阅读 · 0 评论 -
JavaScript队列(基于对象存储)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script> // 基于对象的队列 class Queue { // 构造函数 constructor(){ this.count = 0; //记录最后的元素的键原创 2020-07-05 17:36:02 · 3063 阅读 · 0 评论 -
JavaScript队列(基于数组)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script> // 基于数组的队列 class Queue { // 构造函数 constructor(){ this.items = []; } //原创 2020-07-05 17:22:47 · 3207 阅读 · 0 评论 -
JavaScript栈
①基于数组的栈<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script> // 构造栈类 基于数组 class Stack{ // 构造函数 constructor(){ this.items = [];原创 2020-07-05 17:00:11 · 3322 阅读 · 0 评论 -
剑指 Offer 10- II. 青蛙跳台阶问题
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script> // 思路递归从后往前看,最后一步是1或者2,则从三阶台阶开始问题变为i-1 和 i2 的问题 var numWays = function(n) { c.原创 2020-07-05 15:12:28 · 2602 阅读 · 1 评论 -
JavaScript四种数值取整方法
一、Math.trunc()1.定义Math.trunc()方法去除数字的小数部分,保留整数部分。2.语法Math.trunc(value)3.示例console.log(Math.trunc(2.01)); // 2console.log(Math.trunc(2.9)); // 2console.log(Math.trunc('0.22')); // 0console.log(Math.trunc(-1.22)); // -1console.log(Math.trunc(-1.56)转载 2020-07-05 00:31:35 · 4714 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列
①非递归var fib = function(n) { if(n < 1) return 0 ; else if(n <=2 ) return 1; let temp = 1; let temp1 = 1; let result; for(let i = 3; i<= n;i++){ result = (temp+temp1) % (1e9 + 7); temp = temp1; temp1 = result;.原创 2020-07-04 18:14:04 · 3447 阅读 · 0 评论 -
&&逻辑短路
&&短路与详解当&&前边的值为false时,将不再执行后边的语句1.当&&前面的值结果为false的时候就会发生短路2.&&短路的是&&之后的所有的计算过程3.当发生短路情况时,短路与的性能要比逻辑与的性能更好4.&逻辑与 和 &&短路与 从最终结果上来看没有任何的区别javascript 代码案例测试:求解 1+2+3+4…+n<!DOCTYPE html><html原创 2020-06-28 11:08:42 · 767 阅读 · 0 评论 -
剑指 Offer 64. 求1+2+…+n (javascript 题解)
①方法一、利用 &&逻辑短路,来递归&&逻辑短路指,前面的为false后面的不执行,也就是逻辑运算,可以把 &&前面的n拿来判断是否到零截止递归,后面为递归主体。var sumNums = function(n) { return n && sumNums(n-1) + n;};②方法二、利用等差数列公式结合内置函数pow 和移位运算右移移位等价于除以二var sumNums = function(n) { retu.原创 2020-06-28 10:47:33 · 305 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
方法一、遍历插入新字符串尾部拼接 var replaceSpace = function(s) { var temp = '' for( const n of s) if(n == ' ') temp+='%20'; else temp+=n; return temp; };原创 2020-06-27 00:25:36 · 374 阅读 · 0 评论 -
CSS构造三角形
1. 我们用css 边框可以模拟三角效果2. 宽度高度为03. 我们4个边框都要写, 只保留需要的边框颜色,其余的不能省略,都改为 transparent 透明就好了4. 为了照顾兼容性 低版本的浏览器,加上 font-size: 0; line-height: 0;效果:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>triangle&l原创 2020-06-24 17:20:24 · 442 阅读 · 0 评论 -
盒子模型知识点
第01阶段.前端基础.盒子模型盒子模型(CSS重点)css学习三大重点: css 盒子模型 、 浮动 、 定位主题思路:目标:理解:能说出盒子模型有那四部分组成能说出内边距的作用以及对盒子的影响能说出padding设置不同数值个数分别代表的意思能说出块级盒子居中对齐需要的2个条件能说出外边距合并的解决方法应用:能利用边框复合写法给元素添加边框能计算盒子的实际大小能利用盒子模型布局模块案例1.看透网页布局的本质网页布局中,我们是如何把里面的文字,.原创 2020-06-14 17:21:53 · 602 阅读 · 0 评论 -
下拉菜单
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> *{ margin: 0; padding: 0; } div { width: 80px; } a { display: block; width: 80px; heigh.原创 2020-06-14 16:30:53 · 284 阅读 · 0 评论 -
通过className来改变样式
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>..原创 2020-06-13 11:41:16 · 1026 阅读 · 0 评论 -
开关灯案例
效果图:源代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> body { background-color: white; } div { height: 200px; width: 200px; margin:100px auto;原创 2020-06-13 11:37:02 · 1136 阅读 · 0 评论 -
循环精灵图
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>..原创 2020-06-12 21:34:03 · 511 阅读 · 2 评论 -
淘宝关闭二维码案例
素材:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <titl.原创 2020-06-12 21:27:31 · 633 阅读 · 0 评论 -
js引擎运行过程
我们js引擎运行js 分为两步: 预解析 代码执行 (1). 预解析 js引擎会把js 里面所有的 var 还有 function 提升到当前作用域的最前面 (2). 代码执行 按照代码书写的顺序从上往下执行预解析分为 变量预解析(变量提升) 和 函数预解析(函数提升) (1) 变量提升 就是把所有的变量声明提升到当前的作用域最前面 不提升赋值操作 (2) 函数提升 就是把所有的函数声明提升到当前作用域的最前面 不调用函数...原创 2020-05-21 23:09:53 · 230 阅读 · 0 评论 -
JavaScript预解析
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Do原创 2020-05-21 23:06:19 · 221 阅读 · 0 评论 -
ES6之前JavaScript没有快作用域
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Do原创 2020-05-21 21:51:28 · 351 阅读 · 0 评论 -
JavaScript函数的两种申明
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Do原创 2020-05-21 21:12:56 · 211 阅读 · 0 评论 -
argument的使用
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Do原创 2020-05-21 21:04:15 · 905 阅读 · 0 评论