Node端與瀏覽器端JavaScript的相同與不同

關於Node端與瀏覽器端JavaScript的相同與不同, 可以概括為一下幾點:

1 相同點: nodejs与浏览器都是浏览器的运行环境,都能够解析js程序。对于ECMAScript语法来说,在nodejs和浏览器中都能运行。

  也就是說, 凡是和JavaScript語法和JavaScript語言內置對象相關的東西, 在兩端都可以正常使用.

  只不過是在瀏覽器端有一些額外內置的對象(模塊)類型(在全局對象window之下) , 具體參考Web API文檔.

              在Node端也有一些額外內置的對象(模塊)類型(在全局對象global之下), 具體參考Node文檔.

  全局對象是一個默認的環境, 想調用其中的屬性和方法可以直接進行調用, 不需要通過 (window.屬性) 或 (global.屬性) 等方式進行調用. 

  有一些相同概念的對象, 類似於File對象,

  在Node中好像沒有File對象, 但是有對裝文件操作的API, 封裝在fs模塊(也可以理解為fs對象)中.

  瀏覽器端由於無法對文件直接進行操作, 所有內置了File對象, 可以通過讀取文件到File對象中, 然後通過對象中的方法對文件進行操作.

  兩者的結構不同, 所以兩者對文件的操作方法也不同, 但是同屬於JavaScript對象.

2 主要用到的不同點

1.内置对象不同

  • 浏览器环境中提供了window全局对象
  • NodeJS环境中的全局对象不叫window, 叫global

2.this默认指向不同

  • 浏览器环境中全局this默认指向window
  • NodeJS环境中全局this默认指向空对象{}

4.API不同

  • 浏览器环境中提供了操作DOM和BOM相关的API
  • NodeJS环境中没有HTML节点也没有浏览器, node是一门服务器技术,没有前台页面;
    所以NodeJS环境中没有DOM和BOM。
  • 總之就是各自的內置模塊不同, 可用的服務不同

5.I/O读写

与浏览器不同,我们需要像起他服务端技术一样读写文件,NodeJS提供了比较方便的组件。
而浏览器想在页面中直接打开一个本地的图片就麻烦了好多,而这些node都用一个组件搞定了。

6.模块加载

在NodeJS环境中提供了cmd的模块加载的API,Node还提供了npm这种包管理工具,能更有效管理引用的库。

posted @ 2023-07-11 16:23  0龙行者0  阅读(11)  评论(0编辑  收藏  举报