1

JS是解释性语言,因node服务端的应用,而贯通了前后台。

【ES6】

  1. 关于var和let

    var:

      1.var声明的变量和function声明的变量整体,会被提升到当前作用域的顶部。
      2.无块级作用域 
      3.var声明的变量可重复赋值,即
      var name = 'lin'
      var name = 'li'
      变量提升后
      var name
      name = 'lin'
      name = 'li'
      结果是
      name = 'li'
    

    let(更严谨):

      1.无变量提升
      2.有块级作用域
      3.let声明的变量不可重复赋值,即
      let name = 'lin'
      let name = 'li'
      报错:
      Uncaught SyntaxError: Identifier 'name' has already been declared
    
  2. 箭头函数
    示例:函数去重
    let arr = [1,2,2,3,4]

    原始写法:

    arr.filter(function(value, index, arr){
         return arr.indexOf(value) == index;
    });
    

    ES6写法:

    arr.filter((v, i, a)=>{
         return a.indexOf(v) == i;
    });
    

    ES6更简写法:

    arr.filter((v, i, a)=> a.indexOf(v) == i); //只有单条返回语句时,return可省
  3. 解构赋值

    clipboard.png

    clipboard.png

  4. Promise(解决嵌套太深问题)
    clipboard.png
  5. 模板字符串

     var obj = {name:'Lin'}
     console.log(`my name is ${obj.name}`)   //my name is Lin

【canvas】

   //绘制流程:(联系到实际,就是作画的全过程,这是本质)
   //1.画板
   let cs = document.querySelector('canvas')
   //2.画笔(使用2d画笔)
   let pen = cs.getContext('2d')
   //3.调色
   pen.strokeStyle = 'blue'
   //4.开始
   pen.beginPath()
   //5.绘制(moveTo,lineTo,strokeRect,arc)
   pen.moveTo(10,10)
   pen.lineTo(10,10)
   //6.结束
   pen.stroke()

给canvas背景色,即看到效果

【common.js】

http://javascript.ruanyifeng....

Node 应用由模块组成,采用 CommonJS 模块规范。

【node】

node做后台服务端,处理http请求的代码,得自己实现了。

 实现:
   1.由http模块,生成server来监听指定端口
   2.端口连接时,触发回调,比对请求地址后,由fs模块读写文件
   3.处理结果响应给前端

示例:

   http.createServer((req,res)=>{
        let pathname = url.parse(req.url).pathname;
        fs.readFile(path.join(process.cwd(),pathname),(err,data)=>{
            res.writeHead(200);
            res.end(data);
        });
   })

【express】

  express对http模块高度封装
  使后台得以use中间件方式,区分路由,从而脱离出MVC式的项目结构目录
  解释下这里提及的mvc:
  m model         存放mongoose.model()生成的model
  v view          指定可静态访问的目录
  c controller    存放express.Router()方式处理的中间件,这儿放的是业务逻辑
  路由会单独提取到一个文件中 

示例:

const express = require('express')
const app = express() 

app.use(express.static('./public'))           

app.listen(3000,err =>{
    if(err){
        return console.log('3000端口失败')
    }
    console.log('3000端口监听成功')
})

【补充】

1.关于下载
npm会随着node而安装,但默认下载地址在国外。为提高下载速度,可通过nrm来切换镜像源。

npm i nrm -g
nrm ls
nrm use taobao

clipboard.png

2.关于运行

   node index.js           //每次修改代码,都得手动重启服务端=>心累
   yarn add nodemon -S     //代码修改与服务器同步了 ps: yarn的并行下载速度更快

Lin945
211 声望6 粉丝

技术沉淀还是很有必要的,尽量多写写。