-
直接用标签名或ID写CSS难维护,因语义弱、唯一性强、结构耦合高;应采用BEM类名规范与独立顶层类名HTML结构,实现样式解耦与真正复用。
-
Symbol是ES6新增的唯一原始类型,每次调用返回独一无二值,不可复用、不参与隐式转换;用作对象属性键可防命名冲突,且默认不可枚举;Symbol.for()提供全局注册表,Symbol描述仅用于调试。
-
Notepad编写HTML需保存为.html文件,通过浏览器打开即可运行;2.正确设置文件扩展名和编码(UTF-8)是关键步骤;3.修改后刷新浏览器实时查看效果,无需编译。
-
JavaScript模板字符串用反引号定义,支持嵌入表达式(${})、多行书写及标签函数,自ES6起引入,比传统字符串更灵活易读。
-
::first-letter不生效的主因是宿主元素非块级或含非内联内容;中文首字下沉需font-size与无单位line-height协同调整;Flex/Grid容器中该伪元素失效属规范行为;移动端需防字体缩放干扰。
-
闭包能保留值是因为函数会记住其创建时的词法作用域,即使外部函数已执行完毕,内部函数仍可通过闭包访问并保持对当时变量的引用。1.在异步操作中,由于JavaScript是单线程并依赖事件循环,回调函数往往在外部变量已变化后才执行,导致访问到的是最新值而非预期值;2.使用闭包可通过IIFE为每个回调创建独立作用域,从而“锁定”变量值;3.ES6的let在for循环中每次迭代创建新的绑定,相当于自动实现闭包隔离,使异步回调能正确访问各自循环变量;4.闭包广泛应用于事件处理、模块封装、柯里化等场景,但也需警惕内存泄
-
绝对定位元素的top/left相对于最近的已定位祖先元素(position为relative、absolute、fixed或sticky),无则相对于初始包含块(视口);box-sizing和margin不影响其定位基准,常见问题多因父级未设定位或溢出裁剪导致。
-
行高(line-height)通过控制文本行间距提升可读性与视觉效果,支持无单位数值、带单位长度、百分比和normal等取值;推荐使用无单位数值(如1.5),能基于字体大小按比例计算并良好继承;每行文本形成“行框”,line-height决定其高度,超出font-size的部分均分于文字上下,实现宽松布局;正文建议设为1.5,标题可设1.2~1.3,单行文本垂直居中可通过line-height等于容器高度实现,避免过小行高导致拥挤。
-
箭头函数无自有this、不可构造、无arguments、无yield、返回值需注意隐式规则:其this沿用外层,不能new调用,不支持arguments和yield,单表达式自动返回,对象字面量须用小括号包裹。
-
前端JS在浏览器运行,负责页面交互;后端JS在服务器运行,处理业务逻辑。前者操作DOM、响应用户行为,后者通过Node.js处理请求、数据库操作。两者通过HTTP协议通信,前端用fetch发送数据,后端用Express等框架接收并返回JSON,协同实现完整功能。
-
JavaScript常用设计模式包括单例、观察者、工厂、代理等,其中单例确保类唯一实例,适用于配置管理;观察者实现一对多依赖更新,Subject与Observer直接通信,区别于发布-订阅的事件总线解耦。
-
迭代器模式提供顺序访问聚合对象元素的方法而不暴露内部结构,JavaScript通过实现具有next()方法的Iterator接口,返回包含value和done属性的对象,如createIterator函数示例所示。
-
最直接方式是用<ahref="about.html">关于我</a>,路径需区分大小写、不可省略.html后缀,相对路径适用于同目录或子目录,绝对路径以/开头更稳定但本地双击无效;按钮跳转需JS配合location.href。
-
fr是剩余空间的份数,如1fr2fr1fr将剩余空间分为4份;混用fr与px时fr仅分配扣除px后的剩余空间;需用minmax()或clamp()防布局崩溃,设min-width:0防内容撑宽,并注意auto不拉伸、align-self才控制子项填满。
-
HTML5search输入框在旧浏览器中不被原生支持,需通过降级为text类型并添加ARIA属性、Modernizr检测动态替换、引入polyfill模拟行为、CSS重置样式及服务端统一参数映射五种方案实现兼容。