JS是解釋性語言,因node服務端的應用,而貫通了先後臺。javascript
關於var和lethtml
var:前端
1.var聲明的變量和function聲明的變量總體,會被提高到當前做用域的頂部。 2.無塊級做用域 3.var聲明的變量可重複賦值,即 var name = 'lin' var name = 'li' 變量提高後 var name name = 'lin' name = 'li' 結果是 name = 'li'
let(更嚴謹):java
1.無變量提高 2.有塊級做用域 3.let聲明的變量不可重複賦值,即 let name = 'lin' let name = 'li' 報錯: Uncaught SyntaxError: Identifier 'name' has already been declared
箭頭函數
示例:函數去重
let arr = [1,2,2,3,4]node
原始寫法:express
arr.filter(function(value, index, arr){ return arr.indexOf(value) == index; });
ES6寫法:npm
arr.filter((v, i, a)=>{ return a.indexOf(v) == i; });
ES6更簡寫法:canvas
arr.filter((v, i, a)=> a.indexOf(v) == i); //只有單條返回語句時,return可省
解構賦值服務器
模板字符串mvc
var obj = {name:'Lin'} console.log(`my name is ${obj.name}`) //my name is Lin
//繪製流程:(聯繫到實際,就是做畫的全過程,這是本質) //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背景色,即看到效果
http://javascript.ruanyifeng....
Node 應用由模塊組成,採用 CommonJS 模塊規範。
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對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
2.關於運行
node index.js //每次修改代碼,都得手動重啓服務端=>心累 yarn add nodemon -S //代碼修改與服務器同步了 ps: yarn的並行下載速度更快