它是 JavaScript 吗?

主要观点:“It’s Just JavaScript”这一说法常被提及,意为用大家熟悉的 JavaScript 语言可进行多种操作,但 JavaScript 实际情况复杂,不同环境下有不同表现。
关键信息:

  • 浏览器中的 JavaScript 可操作 DOM 等,如let el = document.querySelector("#root"); window.location = "https://jim-nielsen.com";
  • 服务器端的 JavaScript 可在 Node 等环境运行,如const fs = require('fs'); const content = fs.readFileSync('./data.txt', 'utf8');
  • JSX 需编译后在浏览器或服务器运行,如function MyComponent() { const handleClick = () => {/* do stuff */} return (<Button onClick={handleClick}>Click me</Button>);,且在服务器端也可运行
  • 有魔法注释的代码如/** @jsx h */ import { h } from "preact"; const HelloWorld = () => <div>Hello</div>;,其编译和执行方式特殊
  • TypeScript 常见但不完全等同于 JavaScript,如const name: string = "Hello world";
  • 导入语句import icon from './icon.svg'; import data from './data.json'; import styles from './styles.css'; import foo from '~/foo.js'; import foo from 'bar:foo';很多是非标准的,需编译
  • “Vanilla”JavaScript 无需编译器等,在各种环境都能运行
    重要细节:不同环境下的 JavaScript 表现不同,理解一个.js文件需要考虑运行时、编译工具、隐含框架等上下文,说“Just JavaScript”时应明确是针对哪种环境。
阅读 9
0 条评论