js属于前端还是后端
```html JavaScript 这玩意儿,一开始就是前端跑在浏览器里的。1995 年 Brendan Eich 在网景公司憋了十天搞出来的还后,目的属于很简单——给网页加点动态效果。表单验证、前端按钮点击弹个窗、还后鼠标移上去变个色,属于就这些。前端那时候它跟后端没半毛钱关系,还后后端是属于 Perl、C、前端Java 的还后地盘。所以你要问“js属于前端还是属于后端”,答案得看你说的前端是哪个年代的 js,以及你用的还后是哪套运行时。 我第一份工作写 jQuery,整天跟 DOM 打交道。那时候公司里有个老哥,专门写 Java 后端,他看我的代码就像看玩具。有一次他问我:“你这 js 能连数据库吗?”我说不能。他笑了。那个笑我记到现在。后来 Node.js 出来,2009 年,Ryan Dahl 把 V8 引擎从 Chrome 里抠出来,套了个壳,让 js 能跑在服务器上。从那天起,事情就变了。 现在的 js 早就不只是前端的语言了。你在浏览器里写 我见过不少项目,前端 Vue 或 React,后端 Express 或 NestJS,前后端都是 js。这种叫全栈 js,或者叫“同构”。同一个语言写两端,好处是类型系统可以共享,比如 TypeScript 的 interface 前后端都能用。坏处也明显——你写前端的时候得时刻提醒自己“这段代码会不会被打包进浏览器”,写后端的时候又得想“这个库是不是只能在 Node 里跑”。我有个朋友在字节跳动做全栈,他说最怕的就是把 但如果你只问“通常意义上,js 属于哪边”,那得看语境。招聘网站上写“前端开发工程师”,要求里肯定有 js。写“Node.js 后端开发”,也要求 js。语言本身是中立的,归属取决于它服务的那一端。就像菜刀,在厨房切菜是厨具,在街上砍人是凶器——工具没变,用途变了。 还有一个容易混淆的点:浏览器里也能跑后端逻辑吗?不能。浏览器里的 js 被沙箱限制死了,不能直接读文件、不能开 socket、不能监听端口。你写个 所以我的看法是:别纠结“js 属于哪端”这种分类。你打开编辑器,写 如果你刚入门,先学浏览器里的 js——操作 DOM、处理事件、发 ajax 请求。这些是基础。等你能用 Express 写个简单的 REST API 了,自然就理解后端 js 是怎么回事。别被“前端还是后端”这种标签框住。标签是给人贴的,代码只认运行时。document.getElementById,那是前端。你在 Node.js 里写 fs.readFile,那是后端。同一个语言,两套 API,两个运行环境。就像一个人,白天在写字楼当白领,晚上去夜市摆摊,你不能简单说他到底是白领还是摊贩——得看时间、地点、具体在干嘛。window 对象不小心带到服务端代码里,一跑就崩。fetch('/api'),那是在请求后端,不是自己变成后端。Node.js 里也能跑前端逻辑吗?可以,比如服务端渲染(SSR),在服务器上先跑一遍前端框架,生成 HTML 再发给浏览器。这时候 js 既像前端又像后端,但严格说,它是在后端环境里执行前端的渲染任务。console.log('hello'),这行代码既可以在 Chrome 控制台跑,也可以在 Node 命令行跑。它属于 js,不属于前端也不属于后端。真正决定归属的,是你 import 了什么模块,调用了什么 API,以及最终这段代码跑在谁的进程里。
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-