知道nodejs嗎?和web端js區別和共性?
這題考察的是面試者對nodejs的瞭解和對js標準的瞭解。
共同點
都尊選ECMAScript語法標準,最新版本是ECMAScript 8(ES2017)
該語法包含了變量定義、 循環、判斷、 函數、 原型、 原型鏈、作用域、 閉包、異步等,ECMAScript只定義語法,但是它不能操作DOM,不能監聽click事件,不能發送ajax請求,不能處理http請求,不能操作和讀寫文件,不能訪問數據庫,只有它,幾乎做不了任何實際的項目。所以nodejs和web標準js都對它進行了功能上的擴展。
不同點
nodeJs
nodeJs主要運行在服務器端,能進行文件讀寫,數據庫連接,網絡連接等操作,而且不存在兼容問題,因爲運行內核是同一個內核v8引擎。同時nodeJs有一些內置變量(
__dirname
等),和內置的nodeApi。它的功能類似java語言,用來做後端服務。同時node上也有像java一樣流行的框架express, koa
等。
標準js
標準js一般運行在瀏覽器上,所以它包含了,標準語法和DOM(文檔對象模型)和BOM(瀏覽器對象模型)。其中dom主要描述處理網頁內容的方法和接口,將整個文檔document解析成dom樹供用戶使用js對文檔進行處理,BOM描述可以和瀏覽器窗口交互的方法和接口(對象結構),如:window對象,history、location、navigator等,由於瀏覽器內核和版本不一樣,存在很大的兼容問題,簡單理解就是ECMAScript版本一直在更新,但用戶瀏覽器和內核版本不一定能跟上,所以前端程序員要面臨兼容問題,主流做法是用babel來轉義語法,可以看我的另一篇文章,關於babel的babel安裝。
總結
可以看出node和webJs有着相同的語法,所以前端js開發人員能很容易學會nodejs,nodejs主要用於服務器搭建,而webJs主要是運行在客戶端瀏覽器,幫助用戶完成交互操作,渲染頁面等。
個人博客:訪問
學習如逆水行舟,不進則退,前端技術飛速發展,如果每天不堅持學習,就會跟不上,我會陪着大家,每天堅持推送博文,跟大家一同進步,希望大家能關注我,第一時間收到最新文章。
公衆號: