首頁 web前端 前端問答 JavaScript只能寫前端嗎

JavaScript只能寫前端嗎

Oct 09, 2022 pm 05:24 PM
javascript

JavaScript不是只能寫前端,它也可寫後端;JavaScript可以利用Node.js來實現後端開發。 Node.js是讓JavaScript運行在服務端的開發平台,是一個事件驅動「I/O」服務端JavaScript環境,可以將Node.js理解為運行在服務端的JavaScript,因此JavaScript可以寫在後端。

JavaScript只能寫前端嗎

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

JavaScript不是只能寫前端,它也可寫後端。

JavaScript可以透過Node.js技術來實現後端開發,Node.js是一個讓JavaScript運行在服務端的開發平台,它讓JavaScript 成為與PHP、Python、Perl、Ruby 等服務端語言平起平坐的腳本語言。

Node.js可以讓js運行在服務端,並藉助Google v8引擎帶來效能上的飛躍,使其效能幾乎快接近go語言。非同步的程式設計方式讓它能夠承載巨大的並發。但它現在也有如下的缺點:

沒有類似java的Spring框架這樣有高度統一的開發方式; 生態還不夠完善 作為一個前端開發者想要開發後台,你可能先是被自己為難住。但其實針對中小型系統來說,開發一個後台,最重要的就是熟悉「SQL」,只要掌握了這個你就算是入門 了後台開發了。因為其他的一切都有框架幫你準備好了。

框架的選擇

目前用於後端開發的node框架有:

    ##egg
  • express
  • koa
  • nest
  • 。 。 。
那我們該如何選擇呢,有一個很好的方式就是看github的start,那麼我們對比了下koa的start是最多的。但筆者這邊推薦大家使用egg,理由如下:

##阿里金服開發的,維護升級迭代有保障;
  • 底層基於koa;
  • 部署服務時可以很方便地使用多核心,壓榨伺服器效能;
  • 豐富的外掛程式供你選擇,你也可以自訂自己的外掛;
  • 對於中小型系統來說不建議用nest這種類似springboot的框架,那不如直接用springboot更加完全、健全、穩定;

javascript 寫後端前必須知道的事 Node 打破了JS 只能開發前端的瓶頸,並真正實現了得JS者得天下的壯舉!然而,做後端比做前端要嚴謹多,所以JS語言上的一些「BUG」是必須知道了。別到時候數據出了問題,整的一頭霧水。

下面舉例出JS在處理資料中的一些常見問題,以及解決方法!幫助大家鞏固JS基礎,在工作中少走彎道。

一、浮點型資料失去精確度問題:

浮點型又分為

單一精確度浮點型(float)

雙精度浮點型(double ),在強類型語言中(C,JAVA)中有詳細的說明,在JS 中統稱為數值型(Number)。有興趣的讀者可以去了解相關知識,本文繼續回到上面的問題。 首先看一下失去精確度問題的表現狀況,原始碼如下:

console.log(0.1+0.2);    //0.30000000000000004
登入後複製

本來應該結果是

0.3 才對,可是運行結果出現了迷之問題。這在後端開發中是絕對不被允許存在的,這個問題不只在JS中出現,經過測試JAVA,PHP都存在該問題,C不存在該問題。其它語言咋也沒學過啊!咋也不知道啊! 說完問題,接下來說一說解決辦法,原始碼如下:

const floatAdd = (arg1, arg2) => {
    let r1,r2,m;
    try {
    	r1 = arg1.toString().split(".")[1].length;
    } catch(e) {
    	r1 = 0;
    }
    try {
    	r2 = arg2.toString().split(".")[1].length;
    } catch(e) {
    	r2 = 0;
    }
    m  =Math.pow(10,Math.max(r1,r2));
    return (arg1*m+arg2*m)/m;
};

console.log(floatAdd(0.1,0.2));    // 0.3
登入後複製

很幸運通過上述程式碼,我們得到了想要的正確結果,但JS留給我們的問題沒有結束,請看下面的問題

二、toFixed()四捨五入的BUG:

toFixed()

方法使用定點表示法來格式化一個數值。簡單點來說,就是對資料進行四捨五入的處理,定點表示要保留的小數位數。

這個問題依舊與上一個問題 浮點型 資料有關,看下文範例程式碼:
let a=1.115;
console.log(a.toFixed(2))    //1.11
登入後複製

所幸小編小學數學不錯,似乎還當過幾年數學課代表(竊喜一波),一眼就看出了,正確答案應該是

1.12# 才對。機智的小編努力尋找繞坑方法,請看源碼:

const newToFixed=(value,length)=>{  
    let tempNum = 0;  
    let s,temp;  
    let s1 = value + "";  
    let start = s1.indexOf(".");  
    if(s1.substr(start+length+1,1)>=5){
        tempNum=1;  
    }
    temp = Math.pow(10,length);  
    s = Math.floor(value * temp) + tempNum;  
    return s/temp;  
}

console.log(newToFixed(1.115,2))    //1.12
登入後複製
JS開發後端應用時,一定要注意這些資料異常問題。更多的問題,還請各位讀者自行學習囉。


程式碼千萬行,基礎第一行。基礎不紮實,從此兩行淚。

附註:程式碼範例使用了 ECMAScript 2015 版本語法,如果有相容要求的讀者,別忘了修改原始碼。

程式碼千萬行,相容於第一行。相容不處理,到頭兩行淚。

【相關推薦:web前端開發

以上是JavaScript只能寫前端嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用WebSocket和JavaScript實現線上語音辨識系統 如何使用WebSocket和JavaScript實現線上語音辨識系統 Dec 17, 2023 pm 02:54 PM

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

WebSocket與JavaScript:實現即時監控系統的關鍵技術 WebSocket與JavaScript:實現即時監控系統的關鍵技術 Dec 17, 2023 pm 05:30 PM

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

如何利用JavaScript和WebSocket實現即時線上點餐系統 如何利用JavaScript和WebSocket實現即時線上點餐系統 Dec 17, 2023 pm 12:09 PM

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

如何使用WebSocket和JavaScript實現線上預約系統 如何使用WebSocket和JavaScript實現線上預約系統 Dec 17, 2023 am 09:39 AM

如何使用WebSocket和JavaScript實現線上預約系統在當今數位化的時代,越來越多的業務和服務都需要提供線上預約功能。而實現一個高效、即時的線上預約系統是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預約系統,並提供具體的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工

JavaScript與WebSocket:打造高效率的即時天氣預報系統 JavaScript與WebSocket:打造高效率的即時天氣預報系統 Dec 17, 2023 pm 05:13 PM

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

javascript如何使用insertBefore javascript如何使用insertBefore Nov 24, 2023 am 11:56 AM

用法:在JavaScript中,insertBefore()方法用於在DOM樹中插入一個新的節點。這個方法需要兩個參數:要插入的新節點和參考節點(即新節點將要插入的位置的節點)。

JavaScript與WebSocket:打造高效率的即時影像處理系統 JavaScript與WebSocket:打造高效率的即時影像處理系統 Dec 17, 2023 am 08:41 AM

JavaScript是一種廣泛應用於Web開發的程式語言,而WebSocket則是一種用於即時通訊的網路協定。結合二者的強大功能,我們可以打造一個高效率的即時影像處理系統。本文將介紹如何利用JavaScript和WebSocket來實作這個系統,並提供具體的程式碼範例。首先,我們需要明確指出即時影像處理系統的需求和目標。假設我們有一個攝影機設備,可以擷取即時的影像數

See all articles