前耑開發:node.js入門

字號+ 編輯: Snake 修訂: 科学鼠辈 來源: 知了堂培训 2023-09-06 我要說兩句(0)

node.js把js從前耑語言變成了服務耑語言。

  • 把js從前耑語言變成了服務耑語言。

  • 使用

  • nodehelloworld.js

  • 安裝額外的包

  • npm install mysql

安裝很慢的話,可以更換源爲中國源

npm install -g cnmp --registry=""cnpm install xxx
// -g 爲全局安裝
// 什麽都不寫就說本地安裝,加入到./node_modules
// -s -D,一個是運行環境要有,一個是開發環境要有

卸載包

npm uninstall xxx

導包

const http = require('http');

示例1 httpserver.js

2.jpg

示例2 mysql.js

// 1.導包
const mysql = require('mysql')
// 2.創建連接對象
var connection = mysql.createConnection({ host:"127.0.0.1", port:3306, user:"root", password:"root", database:"test"});
// 3.配置數據庫連接信息
// 4.開辟鏈接
connection.connect();
// 5.執行sqlconnection.query("select * from user",function(error,results,fields) {
    if(error) throw error;
    console.log("results=",results);
});
// 6.關閉連接
connection.end();

ES6

let const var

let:變量,並且能夠防止變量穿透 const: 常量,不可修改

之前都用var,無法區分變量常量,而且無法防止變量穿透var name = "xiaobo";var PI = Math.PI;---現在使用 let 和 constlet name = "xiaobo";const PI = Math.PI;//不可修改

變量穿透

// 使用var 無法防止變量穿透
for(var i = 0;i<5;i++){ console.log(i); }
//0,1,2,3,4
console.log(i);
//5 不希望的結果
//使用let 可以
for(let i = 0;i<5;i++){ console.log(i); }
// 0,1,2,3,4
console.log(i); // 報錯,i is not defined

模板字符串

使用兩個反括號包裹起來 `` 即可

var person = { name:"xiaocainiao", address:"dalian" } 
let address = "我是"+person.name+",在"+person.address;//我是xiaocainiao,在dalian let address2 = `我是${person.name},在${person.address}`;//我是xiaocainiao,在dalian console.log(address); console.log(address2);

默認參數

函數的參數,沒有賦值的時候是undefined,多個參數,沒有全部傳值就會計算出錯。 現在可以使用默認參數function sum(a,b){return a+b;}var res = sum(70);console.log(res);//結果爲 NaN------------function sum(a=100,b=100){return a+b;}var res = sum(70);console.log(res);//結果爲 170

箭頭函數

1.去掉function,加上箭頭 2.如果方法中只有一句return,沒有別的邏輯,可以去掉大括號和return 3.如果參數隻有一個,可以取消參數的括號

var sum = function(a,b){ return a+b; } // 變體1
var sum2 =(a,b)=>{ return a+b; } // 變體3
var sum3 = (a,b)=>a+b; // 4 如果只有一個參數,可以省略括號
var twobei = a=>a*2;
console.log(twobei(100)); // 結果爲200

對象初始化簡寫

變量名和對象的key一致,對象内部可以簡寫 對象内的:function可以省略,只剩下括號

let name="xiaocainiao";
let phone=12345678901;
let info = {
    name:name,
    phone:phone,
    go:function(){ console.log("go!go!go!"); }
}
// 可以簡寫爲以下,前提是變量名和對象的key一致。
let name="xiaocainiao";
let phone=12345678901;
let info = {
    name,
    phone,
    //:function可以省略,只剩下括號
    go(){ console.log("go!go!go!"); }
}

對象解構

對於對象取出屬性或者執行對象的方法,有兩種方式

  1. obj.x obj.y() 

  2. obj["x"], obj["y"]

現在新添一種,

var{x,y} = obj;

也就是快速取出了

let name="xiaocainiao";
let phone=12345678901;
let info = {
    name,
    phone,
    //:function可以省略,只剩下括號
    go() { console.log("go!go!go!"); }
} for(var x in info) {
    console.log(x);
    console.log(info.x); // undefined
    // 這是用 `.`方式的缺點,它不回去尋找x背後的值是name或者phone,
    // 而是就直接尋找info.x,沒有就undefined了
    console.log(info[x]); // 可以查出
}
// 新增方式
// 但是這種,應該要求解構出來的變量名需要與對象屬性名一致,這樣就不能用對象構造時候的簡寫了。
// 否則新定義的變量就與上面的變量沖突了
// 所以似乎沒啥用
let {name,phone,go} = info; console.log(name);
console.log(phone);
go();

傳播操作符

...obj 解構之後的對象,可以拿到除了解構出的屬性,剩餘的所有屬性 具體見代碼

let info = { name:"cainiao", phone:123456, address:"DLUT", go(){ console.log("go!go!go!"); } } let {name,phone,...info2} = info; console.log(name); console.log(phone); console.log(info2);//這裡會拿到除了name和phone的所有屬性。 //cainiao //123456 //Object { address: "DLUT", go: go()}

數組Map

假設有一個需求,要對數組所有内容*2,之前只能使用for循環的方式,現在可以用map迅速搞定

let arr1 = [1,2,3,4,5];let arr2=[]; for(let i = 0;i<arr1.length;i++){ arr2.push(arr1[i]*2);}//map方式let arr1 = [1,2,3,4,5];let arr2 = arr1.map(function(val){ return val*2;});// 當然也可以改進簡寫let arr1 = [1,2,3,4,5];let arr2 = arr1.map(val=> val*2);

原理是什麽?arr.map的時候,實際上是産生了新的數組,然後取出原數組的每個字,計算後,return進行回填到對應位置 v1爲數組的第i個元素, v2爲第i-1個元素,第一次循環時爲0 v3爲數組本身 最多三個,v4就not defined

// 更複雜的形式
let arr1 = [1,2,3,4,5];
let arr2 = arr1.map(function(v1,v2,v3) {
    console.log(v1);
    console.log(v2);
    console.log(v3);
    return v1+v2+v3;
}); // v1爲數組的第i個元素,v2爲第i-1個元素,第一次循環時爲0
    // v3爲數組本身
    // 最多三個,v4就not defined
    // v1和v2是值相加,接著再加對象,變成了字符串拼接,結果爲
    /* Array(5) [ "11,2,3,4,5", "31,2,3,4,5", "51,2,3,4,5", "71,2,3,4,5", "91,2,3,4,5" ] */

數組reduce

v1是循環計算位,第一次就是數組的第一個數 接著每次都是計算後的結果暫存 v2是第i+1位 v3是第i位(好複雜。。。) v4 和map的v3一樣,是數組本身 v5 not defined

let arr1 = [1,2,3,4,5]; let arr3 = arr1.reduce(function(v1,v2,v3){ console.log(v1);//1 4 9 16 console.log(v2);//2 3 4 5 console.log(v3);//1 2 3 4 return v1+v2+v3; }); console.log(arr3);//25

總結

後耑java程序員,這方面想必應該是了解就好,springboot 還沒有學會,就先不在這裡深究了。以後一定回來繼續深入了解。


閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • JS如何防止父節點的事件運行

  • nodejs編寫一個簡單的http請求客戶耑代碼demo

  • 說一則爲什麽後耑開發人員不選擇node.js的原因

  • 使用Sublime Text3 開發React-Native的配置

我要說說
網上賓友點評