src 与 href 的区别?
面试速答(30 秒版 TL;DR)
src(source):把外部资源“嵌入/引入为当前元素内容”。浏览器通常会发起请求并把返回内容用于渲染/执行(如图片显示、脚本执行、iframe 加载)。href(hypertext reference):声明一个“引用/关联/可跳转”的地址。它表达的是“关系或导航”,是否会立刻请求取决于元素/rel(如<a href>通常点击才导航;<link rel="stylesheet" href>会立即拉取 CSS 并应用)。
核心区别(一句话 + 对照)
一句话记忆:src 供“用”,href 供“指”。
| 维度 | src | href |
|---|---|---|
| 语义 | 资源是该元素的“内容来源” | 资源是该元素“指向/关联”的目标 |
| 典型标签 | img、script、iframe、audio/video/source | a、link、base |
| 浏览器行为(常见) | 多数场景会立即请求并消费资源 | 取决于场景:可能仅作为跳转地址,也可能作为依赖被加载(如样式表) |
典型例子
<!-- src:资源会被“用来显示/执行/加载” -->
<img src="/logo.png" alt="logo" />
<script src="/app.js"></script>
<iframe src="https://example.com"></iframe>
<!-- href:资源是“指向/关联/跳转”的目标 -->
<a href="https://example.com">去 example.com</a>
<link rel="stylesheet" href="/styles.css" />
易错点(面试常追问)
- 不要简单说“
src会下载、href不会”:<link rel="stylesheet" href>、<link rel="preload" href>等同样会触发加载;而<a href>通常不主动下载目标页面。 base的影响:<base href="...">会改变文档内相对 URL 的解析基准(包括src、href等)。