编程技术答疑
汇总学员在学习 HTML、CSS、JavaScript、部署、安全、数据库时最常遇到的八个问题。
HTML 语义化标签到底有什么用?
语义化标签如 header、nav、article、footer 不直接改变显示效果,但能帮助搜索引擎理解页面结构,也让屏幕阅读器正确朗读,同时让团队协作时更易维护。
CSS 垂直居中有几种常用方式?
最常用三种:Flex 布局 `align-items:center`、Grid 布局 `place-items:center`、以及绝对定位 `top:50% + transform:translateY(-50%)`。尧图建议新项目优先用 Flex 或 Grid。
JavaScript 中 let、const、var 有什么区别?
var 有变量提升、函数作用域,已不推荐;let 是块级作用域、可重新赋值;const 是块级作用域、不可重新赋值,但对象内部属性仍可修改。默认用 const,需要改值时用 let。
异步编程 Promise 和 async/await 怎么选?
async/await 是 Promise 的语法糖,可读性更好、错误处理更接近同步代码。尧图建议业务代码统一用 async/await,仅在并发场景用 Promise.all 提升效率。
静态网站部署一定要买服务器吗?
不一定。纯静态站点可用对象存储 + CDN 方案,按流量计费、成本极低,且自带 HTTPS。尧图课程中会对比虚拟主机、云服务器、对象存储三种方案的成本与适用场景。
HTTPS 证书必须付费购买吗?
不必。Let's Encrypt 提供免费 90 天可自动续签的证书,多数云厂商也提供免费 DV 证书。付费 OV/EV 证书适合企业官网、金融场景,主要为提升品牌信任。
SQL 注入是怎么产生的?如何预防?
当用户输入被直接拼接进 SQL 语句时产生注入。预防方式是始终使用参数化查询或预编译语句,配合最小权限账号和输入校验,绝不要用字符串拼接构造 SQL。
前后端分离后跨域问题怎么解决?
标准做法是后端配置 CORS 响应头,明确允许的源、方法、凭证。开发期可用代理转发绕过浏览器同源策略。尧图建议生产环境用反向代理统一域名,从根源消除跨域。