Skip to content

Instantly share code, notes, and snippets.

@tiye
Created August 26, 2024 11:30
Show Gist options
  • Save tiye/7a52d86e371758d6121f2f01efa3a56d to your computer and use it in GitHub Desktop.
Save tiye/7a52d86e371758d6121f2f01efa3a56d to your computer and use it in GitHub Desktop.
浏览器原生支持的六大编程语言,你学会了几门?

浏览器原生支持的六大编程语言,你学会了几门?

你是否知道,你的浏览器不仅仅是用来浏览网页的?它其实是一个强大的编程平台,支持着六种原生语言,赋予了网页前所未有的互动性和功能性。你是否已经掌握了这六种语言,并用它们创造出令人惊叹的 web 体验呢?

1. HTML:网页的骨架

HTML(HyperText Markup Language)是网页的基石,负责定义网页内容的结构和语义。它使用标签来标记文本、图像、视频等元素,并通过属性来控制它们的样式和行为。

代码示例:

<!DOCTYPE html>
<html>
<head>
  <title>我的网页</title>
</head>
<body>
  <h1>欢迎来到我的网站!</h1>
  <p>这是一段文字。</p>
  <img src="image.jpg" alt="图片描述">
</body>
</html>

语言特性:

  • 标记语言:通过标签来描述内容的结构和语义。
  • 层次结构:使用嵌套标签来组织内容的层次关系。
  • 属性:使用属性来控制元素的样式和行为。

最新特性:

  • 语义化 HTML5:更丰富的标签,更好地表达内容的语义。
  • Web Components:可复用、封装的网页组件。

2. CSS:网页的外观

CSS(Cascading Style Sheets)负责定义网页的外观,包括颜色、字体、布局、动画等。它使用选择器来指定要应用样式的元素,并使用属性值来定义具体的样式。

代码示例:

body {
  background-color: #f0f0f0;
  font-family: Arial, sans-serif;
}

h1 {
  color: blue;
  font-size: 2em;
}

语言特性:

  • 选择器:用于指定要应用样式的元素。
  • 属性:用于定义样式的具体属性。
  • 层叠:多个样式表可以应用于同一个元素,按照一定的优先级进行叠加。

最新特性:

  • CSS 变量:方便地定义和复用样式值。
  • CSS 逻辑:使用逻辑运算符来控制样式的应用。
  • CSS Grid:强大的网格布局系统。

3. JavaScript:网页的行为

JavaScript 是浏览器中的脚本语言,赋予网页交互性、动画效果和动态内容。它使用代码来控制网页元素的行为,并与用户进行互动。

代码示例:

const button = document.getElementById('myButton');

button.addEventListener('click', () => {
  alert('你点击了按钮!');
});

语言特性:

  • 面向对象编程:支持类、继承、多态等特性。
  • 函数式编程:支持高阶函数、闭包等特性。
  • DOM 操作:可以通过 JavaScript 代码来操作网页的元素。

最新特性:

  • 模块化:使用 importexport 来组织代码。
  • 异步编程:使用 asyncawait 来处理异步操作。
  • Web Workers:在后台线程中执行 JavaScript 代码。

4. GLSL:图形渲染的利器

GLSL(OpenGL Shading Language)是一种用于图形渲染的着色语言,它运行在图形处理器 (GPU) 上,用于控制像素的颜色、纹理和其他属性。

代码示例:

#version 330 core
out vec4 FragColor;

void main() {
  FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);
}

语言特性:

  • 向量和矩阵运算:支持高效的数学运算,用于图形变换和渲染。
  • 纹理采样:访问纹理数据,实现材质和效果。
  • 顶点着色器和片段着色器:分别负责顶点和像素的处理。

最新特性:

  • GLSL 4.6:引入新的特性,例如几何着色器和计算着色器。
  • WebGL 2.0:提供对 GLSL 4.6 的支持,以及更强大的图形渲染能力。

5. WebAssembly:突破性能瓶颈

WebAssembly 是一种低级字节码格式,用于在 Web 浏览器中运行各种语言编写的代码。它能够显著提高网页的性能,尤其适用于计算密集型应用。

代码示例:

(module
  (func $add (param $a i32) (param $b i32) (result i32)
    (i32.add (get_local $a) (get_local $b))
  )
  (export "add" (func $add))
)

解决的问题:

  • 提高 JavaScript 代码的执行效率。
  • 支持多种编程语言,例如 C、C++、Rust 等。
  • 增强 Web 应用程序的性能和功能。

未来展望:

  • WebAssembly 将成为 Web 开发的标准,为开发者提供更强大的编程能力。
  • 它将被用于构建更复杂的应用,例如游戏、虚拟现实、人工智能等。

6. WGSL:下一代图形渲染语言

WGSL(WebGPU Shading Language)是 WebGPU 的着色语言,它基于 SPIR-V 标准,提供更现代化的特性,并与 GLSL 相兼容。

代码示例:

struct VertexInput {
  @location(0) position : vec4<f32>;
};

@vertex
fn vertex_main(input : VertexInput) -> @builtin(position) vec4<f32> {
  return input.position;
}

解决的问题:

  • 提高图形渲染效率,支持更复杂的图形效果。
  • 提供更安全、更易于维护的编程模型。
  • 为 WebGPU 提供更强大的着色能力。

未来展望:

  • WGSL 将成为 Web 3D 渲染的标准,为开发者提供更强大的图形渲染能力。
  • 它将被用于构建更复杂的 3D 应用,例如游戏、VR/AR、3D 模型等。

你是否已经掌握了这些语言?

如果你对这些语言中的任何一种感兴趣,请不要犹豫,开始学习吧!你将会发现,Web 开发的可能性远远超乎你的想象。学习浏览器原生支持的六种编程语言,你将会开启一个充满创意和挑战的 Web 开发之旅!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment