Javascript 是一種動態解釋性的腳本語言,它可以在 Web 頁面中嵌入 HTML 中,從而在客戶端被執行。而在js中無法實現的功能也是存在的,本文將會針對這些 js 不足之處進行說明。
首先,javascript 無法訪問客戶端文件系統及其相關信息。也就是說,無法訪問本地磁盤或運行特定操作系統的本地文件。例如:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var myFile = fso.OpenTextFile("c:\\testfile.txt", 1, true);
如果在這個腳本中執行,將會得到一個以下錯誤提示: ActiveXObject is not defined。
其次,javascript 無法直接運行操作系統級別的指令。尤其是對于操作系統特定的操作方法,一定是不允許的。例如,在不同的操作系統上,需要編寫不同的 API 來訪問文件系統。如下所示:
var proc = require('child_process').spawn('/bin/bash', ['-c', 'printf "5\n3\n" | sort']); proc.stdout.setEncoding('utf8'); proc.stdout.on('data', function(data) { console.log(data); });
如果你在這個 js 腳本中執行這個代碼,你將會得到一個類似這樣的編譯錯誤:require is not defined。
Javascript 還無法訪問和控制硬件設備,如打印機或掃描儀等。編寫一個打印機控制程序或類似的應用程序是不可能的,因為 javascript 是一個腳本語言,它是為了 web 站點和應用程序提供支持而開發的,而不是為了象機器的服務器或桌面應用程序等方向提供支持。
因此,我們需要深刻地認識到 javascript 有自己的局限性,但是這不能抹殺它是一種非常實用的編程語言,特別是對于 web 編程領域來說,javascript 有著重要的意義。