1-函数柯里化:
函数: 复用代码
函数柯里化: 复用函数参数
// 普通的add函数 100 +
function add(x, y) {
return x + y
}
// Currying后
function addOne(x) {
return addTwo (y) {
return x + y
}
}
let fn = addOne(100);
fn(20); // 120
fn(50); // 150
fn(-50); // 50
2-函数防抖: 让代码按照一定频率执行;
require('jquery')
//对象中函数简写形式 :
var obj = {
say() {}
}
readData(callback) {}
模块化:
1- 一个单独js文件就是一个模块 , 有自己独立作用域
2-模块分类:
核心模块:
第三方模块: npm i xx
自定义模块: require('./a');
3-模块查找规则:
1- 先看是时路径, 如果是路径 ,直接相当于当前js文件去查找, 如果不是路径, 先当核心模块查找,在当做第三方模块查找
2- 第三方模块查找规则:
require('jquery');
require('mime');
4-模块导出项设置:
module.exports = {} 向外界暴露数据
接受:
const a = require('./a');
5-模块化意义:
可以项目结构更加清晰, 更加方便维护
express:
可以快速进行服务的开发:
路由处理方式:
//以指定请求方式,监听指定url的请求
app.get(url, (req, res)=> {})
app.post();
//以任意的请求方式,监听指定url请求
app.all(url, (req, res)=> {})
//以任意的请求方式,监听指定以url开头请求
app.use(url, (req, res))
expres中 req, res对象拓展:
req:
req.query get方式传递数据
req.body post方式传递数据
res:
res.status();
res.set(k, v);
res.send();
res.sendFile(绝对路径);
res.redirect(url); 重定向
express中静态资源托管:
app.use( express.static('静态资源目录') )
app.use( express.static('pages') ) localhost/aa.jpg
app.use( '/pages', express.static('pages') ) localhost/ pages/aa.jpg
express中模板的使用:
1- 安装:
npm i express art-template express-art-template
2- 设置:
app.engine('html', require('express-art-template'));
app.set('views', '../../pages'); //指定模板目录
3- 渲染
res.render('模板名称', 数据);
中间件:
可以让在处理请求时, 更加方便,可以使用更多功能
使用中间件目的:给req, 和 res 拓展功能
body-parser中间件:
app.use(bodyParser.urlencoded()); 给req.body赋值
name=zs&age=19&sex=m
把查询字符串 name=zs&age=18 转出对象 ,
可以使用 queryString模块 或者 qs(queryString)模块
queryString模块 和qs模块都开业解析 查询字符串