JS是一种解释型语言,因为在Node服务器的应用,它贯穿了前后端。[ES6]关于var和letvar:1.var声明的变量和function声明的变量会被提升到当前作用域的顶部。2.无块级作用域3.var声明的变量可以重复赋值,即varname='lin'varname='li'变量提升后,varnamename='lin'name='li'结果是name='li'let(更严谨):1.没有变量提升2.块级作用域3.let声明的变量不能重复赋值,即letname='lin'letname='li'Error:UncaughtSyntaxError:Identifier'name'hasalreadybeendeclared箭头函数示例:functiondeduplicationletarr=[1,2,2,3,4]原文:arr.filter(function(value,index,arr){returnarr.indexOf(value)==index;});ES6写法:arr.filter((v,i,a)=>{returna.indexOf(v)==i;});ES6更简写:arr.filter((v,i,a)=>a.indexOf(v)==i);//当只有一个return语句时,return可以保存解构赋值Promise(解决嵌套太深的问题)templatestringvarobj={name:'Lin'}console.log(`mynameis${obj.name}`)//我叫林【canvas】//绘图过程:(联系实际,是整个绘画过程,才是本质)//1.Drawingboardletcs=document.querySelector('画布')//2。画笔(使用2d画笔)letpen=cs.getContext('2d')//3.颜色pen.strokeStyle='blue'//4.Startpen.beginPath()//5.Draw(moveTo,lineTo,strokeRect,arc)pen.moveTo(10,10)pen.lineTo(10,10)//6.结束pen.stroke()到画布背景颜色,即看效果[common.js]http://javascript.ruanyifeng....Node应用由模块组成,使用CommonJS模块规范[node]节点作为后台服务器,代码进行处理http请求,你要实现。实现方式:1.http模块生成服务器监听指定端口2.当端口连接时触发回调,fs模块比较请求地址后读写文件3.处理结果为响应前端示例:http.createServer((req,res)=>{letpathname=url.parse(req.url).pathname;fs.readFile(path.join(process.cwd(),pathname),(err,data)=>{res.writeHead(200);res.end(data);});})[express]Express对http模块进行高度封装,后台可以使用中间件区分路由,从而打破远离MVC风格的项目结构目录。解释一下这里说的mvc:mmodel存放的是mongoose.model()生成的模型vview指定一个可以静态访问的目录ccontroller存放的是express.Router()处理的中间件,这里是将要执行的业务逻辑路由单独提取到文件中示例:constexpress=require('express')constapp=express()app.use(express.static('./public'))app.listen(3000,err=>{if(err){returnconsole.log('3000端口失败')}console.log('3000端口监听成功')})【补充】1、关于下载npm会随node一起安装,但默认下载地址在国外。为了提高下载速度,可以通过nrm切换镜像源。npminrm-gnrmlsnrm使用淘宝2。关于运行nodeindex.js//每次修改代码都要手动重启服务器=>exhaustedyarnaddnodemon-S//代码修改与服务器同步ps:yarninparalleldownloadfaster
