自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 搞懂JS作用域链和闭包

作用域链每个对象都有一个隐藏属性[[scope]],存放它自身的作用域链,GO:全局执行上下文AO:函数执行上下文function test1() { function test2() { var b = 2; } var a = 1; test2();}var c = 3;test1();window 是全局作用域,它的 GO 上有 test1 和 c,它的 scope 上只有 GO当 test1()开始执行,就产生了 test1 的 AO,AO

2020-09-06 13:57:29 147

原创 算法——两数之和(平淡)

// 给定 nums = [2, 7, 11, 15], target = 9// 因为 nums[0] + nums[1] = 2 + 7 = 9// 所以返回 [0, 1]console.log(func([2, 7, 11, 15], 9));function func(nums, target) { for (let i = 0; i < nums.length; i++) { for (let j = 0; j < nums.length; j++) {

2020-09-02 22:53:29 127

原创 算法——输出质数

输出1-100中的质数(只能被1和自己整除,1不是质数)利用双循环,1-自身中所有的数整除自身0,整除一次c+1,,如果c=2,则说明只有1和自己能整除自己,然后c初始化为0let c = 0;for (var i = 2; i <= 100; i++) { for (var j = 1; j <= i; j++) { const num = i % j; if (num === 0) { c++; } } if (c == 2) { .

2020-09-02 22:51:49 838

原创 彻底搞懂系列———promise

为形成链式结构,then函数也会返回 new Promise()then第一次执行,声明两个函数fulfilled和rejected,分别处理then传进来的参数onFulfilled, onRejected。如果onFulfilled(value);和onRejected(error);返回的是Promise,则再用res.then(onFulfilledNext, onRejectedNext);若不是, onFulfilledNext(res);返回结束;但这两个函数并不执行,分别放在两个数组容器

2020-09-02 22:48:03 196

原创 css——你不知道的伪类

1、动态伪类 .dynamic:link {/* 有链接 */ /* background: red */ } .dynamic:visited { /* 链接点击后(拜访后) */ /* background: orange */ } .dynamic:hover { /* 滑入 */ /* background: blue */ } .dynamic:active { /* 激活状态,按住不送,(有

2020-09-01 00:18:45 99

原创 从输入URL到页面加载完成,发生了什么?

从输入URL到页面加载完成,发生了什么?用户输入https://www.madapao.vip浏览器通过DNS,把url解析成IP和IP地址建立TCP链接,发送HTTP请求服务器接收请求,查库,读文件等,拼接好返回的HTTP响应浏览器接收到首屏html,开始渲染解析html为dom解析css为css-treedom+css生成render-tree绘图加载script的js文件...

2019-12-10 15:15:01 105

原创 手写简易版react

请多看代码注释入口index.js// 先把React和React-dom换成mReact和mReact-domimport React, { Component } from "./mReact";import ReactDOM from "./mReact-dom";import "./index.css";// function类型的组件function Comp(props...

2019-12-05 15:03:09 641

原创 js——undefined和undeclared

先看例子:var a;a; //undefined b; //b is not defined这样的报错会让我们认为b也是undefined更让人抓狂的是:var a;typeof a; //undefined typeof b; //undefined 虽然两个都输出undefined,但是两个是不同的,b是一个undeclared变量,typeof b并没有报...

2019-11-18 22:22:37 337

原创 js——值和类型

js中的变量是没有类型的,只有值才有,变量可以随时持有任何类型的值。 var a = 42; typeof a; //number a = true; typeof a; //boolean typeof typeof a;//总是返回--string...

2019-11-18 22:09:48 85

原创 js---内置类型(1)

js的内置类型空值(null)未定义(undefined)布尔值(boolean)数字(number)字符串(string)对象(object)符号(symbol,es6中新增)我们通常用typeof来判断一个变量的类型typeof undefined === 'undefined'; //truetypeof true === 'boolean'; //truety...

2019-10-29 23:29:39 158

原创 彻底玩转this指向

四个常规、一个特殊四个常规:1.new绑定function foo(a) { this.a = a}var bar = new foo(2)console.log(bar.a) //2使用new调用的函数,则其中this将会被绑定到那个新构造的对象。2.显式绑定let web = { webName: "蚂蚁部落" };function fn() { console.l...

2019-10-15 11:21:33 109

原创 动态作用域

我们先看下一段代码 function foo() { console.log(a) } function bar() { var a = 3; foo() } var a = 2; bar()词法作用域:输出2如果有动态作用域动态作用域:输出3当然javascript并不错在动态作用域,只有词法作用域但是th...

2019-10-09 09:44:53 774

原创 js——闭包

闭包今天我们谈闭包,纯粹个人理解function foo(){ var a=2; function bar(){ console.log(a) } return bar}var baz = foo();baz();//2理解在foo()执行后,通常foo()的整个内部作用域会被销毁,因为引擎有垃圾回收器用来释放不在使用的内存空间。由于看上去foo()的内容不在使用,...

2019-09-26 18:48:43 137 1

原创 立即执行函数表达式

立即执行函数表达式var a = 2;(function foo(){ var a = 3; console.log(a); //3})()console.log(a); //2由于函数被包含在一对()括号内部,因此成为一个表达式,通过在末尾加上另外一个()可以立即执行这个函数,比如(function foo(){…}())。第一个()将函数表达式,第二个()执行了这个函数。...

2019-09-26 10:06:19 110

原创 koa——服务器端渲染

目前服务器端渲染主要有两个工具pug(以前的jade,不推荐使用)安装npm i pug -D新建pug1.jsconst pug = require('pug')pug.renderFile('./template/1.pug', { //传参数 pretty: true, title: 'aaaa', users: [{ name: '111', ...

2019-09-24 16:08:43 427

原创 koa——连接数据库mysql

连接mysql先看连接部分const koa = require('koa')const Router = require('koa-router')let router = new Router()let server = new koa()server.listen(8080)//连接数据库server.context.db = require('./libs/databas...

2019-09-23 01:07:51 468

原创 koa——cookie和session

cookie直接上代码撒:const Koa = require('koa')let server = new Koa();server.listen(8080)//设置签名密匙server.keys = [ 'ewqewqewqeqwe', 'ewqewqewqe', 'tretret']server.use(async ctx => { c...

2019-09-23 01:01:21 85

原创 koa——上传文件

极其简单的koa-better-bodynpm i koa-better-body -D老规矩,直接上代码。注释自己看const Koa = require('koa');const Router = require('koa-router');const body = require('koa-better-body')let server = new Koa();server...

2019-09-20 16:26:52 91

原创 koa——文件缓存

安装koa-staticnpm i koa-static -D老规矩,直接上代码const koa = require('koa')const Router = require('koa-router')const static = require('koa-static')let server = new koa();server.listen(8080)//引入路由机制l...

2019-09-20 00:37:25 922

原创 js变量提升

先上总结:定义提升,赋值不会提升大家记住这句话,接下来我们开讲:例1console.log(a)var a = 2;输出undefined,它的实际执行过程:var a;console.log(a)a = 2;这是最简单的例子,var a;是定义的过程,而a = 2是赋值过程例2(难一diudiu)foo();function foo(){ console.log(a...

2019-09-19 10:34:54 66

原创 koa——接口路由传参和接收

1.用:id方式写在路径上(不常用)router.get('/user/:id', ctx => { ctx.body = ctx.params.id//2222})请求http://localhost:8080/2222当遇到参数和路径想混时,如下//当参数和路径相混时,谁在前面,执行谁,不再向后执行,除非有next(),才会向后执行router.get('/us...

2019-09-19 00:05:50 1658

原创 koa——多路由嵌套

我们从里向外看,更容易理解二级路由根目录新建routers文件,其下新建news和user两个文件,这里我们只用user用举例:user文件夹下新建index.js,admin.js,company.js先看admin.jsconst Router = require('koa-router')let router = new Router();//三级路由router.get(...

2019-09-18 10:41:51 1183 1

原创 函数作用域

在任意代码片段外部添加包裹函数,可以将内部的变量和函数定义“隐藏”起来,如下function foo(){ var a = 3; console.log(a)}这种方式不理想,会foo函数会“污染”到全局作用域,而且需要foo()调用才会执行更好的方案(function foo(){ var a = 3; console.log(a)})()优点:foo不属于全局...

2019-09-18 00:21:31 75

原创 koa——基本参数讲解

安装koanpm i koa -D使用//引入koa和routerconst koa = require('koa')const Router = require('koa-router')let server = new koa();server.listen(8080)//引入路由机制let router = new Router(); router.get('/a'...

2019-09-17 23:51:30 336

原创 express——存储cookie和session

cookie安装cookie-parsernpm i cookie-parser -D最基础用法const express = require('express');const cookieParser = require('cookie-parser');let server = express();server.listen(8081)//use引入server.use...

2019-09-17 09:30:04 345

原创 express——处理上传的文件

安装multer(处理文件的中间件)npm i multer -D直接贴node代码const express = require('express')const multer = require('multer')let server = express();server.listen(8081)//文件上传到服务器的位置let obj = multer({ dest: '....

2019-09-16 18:20:18 624

原创 express——body-parser获取post数据和其原理

安装body-parsernpm i body-parser -D使用const express = require('express')const body = require('body-parser')let server = express();server.listen(8081)server.use(body.urlencoded({ //extended: ...

2019-09-16 09:59:35 297

原创 express基础——安装,初步使用

安装新建项目文件夹expressDemo,然后进入expressDemomkdir expressDemocd expressDemo用npm初始化一下,填一些基本信息(可以用cnpm或者yarn)npm initnpm install安装expressnpm i express -D 使用express开始正式写代码,新建文件server1.js//引用express...

2019-09-12 15:33:56 137

原创 有趣的js作用域

1. 定义变量举例:var a = 2;解释:两个主人翁:编译器引擎两步操作:编译器定义一个内存,命名为a引擎把2赋值给内存aLHS查询和RHS查询var a = 2;var b= 1 + a;LHS查询:查询到一个变量,对其进行赋值的过程 (如:a=2的过程)RHS查询:查询到一个变量,并用其值的过程 (如:b= 1 + a 用到了a的值)...

2019-09-11 17:27:40 97

原创 开始学习和分享

**开始**工作两年多,开始分享自己的学习心得。希望以后能坚持每周更新3-6次

2019-09-09 22:59:53 124

空空如也

空空如也

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

TA关注的人

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