-
DevTools是调试JavaScript最高效工具,Console和Sources面板覆盖90%需求;debugger语句轻量但依赖执行路径,Sources断点更可控,支持条件、XHR、DOM等断点;需启用sourcemap和禁用缓存;console.table/group/trace提升日志效率;断点失效常因动态加载、模块延迟、eval或sourcemap失配。
-
群组选择器通过逗号分隔多个选择器并共享样式规则,如h1,p,div{color:red;},可提升代码简洁性与可维护性,常用于统一标题字体、重置边距或设置链接颜色,使用时应保持格式清晰、避免过度组合。
-
构造函数继承通过call或apply在子类中调用父类构造函数,实现属性独立拷贝、支持向父类传参、避免原型链共享副作用,确保实例间数据隔离。
-
使用auto-fit与minmax可创建自适应多列布局:.grid-container设置display:grid,grid-template-columns:repeat(auto-fit,minmax(200px,1fr))实现列宽最小200px、最大均分,空间不足时自动换行;适用于卡片、图库等场景,小屏单列、中屏多列、大屏更多列,无需媒体查询;优化建议设minmax最小值为250px避免过窄,配合gap间距,确保各设备良好排版。
-
最可靠方案是浏览器原生打印(DevTools→Ctrl/Cmd+P→另存为PDF)或Puppeteer服务端渲染;html2canvas+jsPDF因截图原理存在字体、样式、跨域及模糊等多重缺陷需慎用。
-
Babel插件通过AST操作ImportDeclaration、ExportAllDeclaration等节点的source.value安全重写模块路径,需同步更新raw值、兼容动态import()和TS,避免修改specifiers及相对路径错误。
-
HTML用于构建网页结构、超链接、图像、表单和表格:一用<html><head><title><body><h1><p><ul><li>定义基础内容;二用<ahref>实现外链、内链及新页跳转;三用<imgsrcalt>嵌入图片并保障可访问性;四用<form><input><button>收集用户数据;五用<table><thead&
-
仅用html{filter:grayscale(100%);}不够,需补-webkit-filter兼容旧版Safari/安卓WebView,并为IE11添加progid语法;应选html而非body作根选择器以确保全覆盖,且须规避性能拖慢、文本可读性下降及视觉细节崩坏问题。
-
Intl.NumberFormat('en-US',{style:'percent'})默认将输入值乘以100再加%符号;传入0.12得12%,若后端返回整数12则需先除以100,否则会显示1200%。
-
模板字符串用反引号包裹,支持多行、保留换行缩进、内嵌变量表达式(如${name})、配合标签函数实现转义/格式化,调试可用JSON.stringify查看真实换行。
-
pushState不会触发页面刷新,因为它仅操作浏览器历史栈、修改URL栏和window.location,不发起导航请求或重新加载文档,DOM与JS上下文完全保留;需手动监听popstate事件并同步视图,且服务端须配置fallback避免404。
-
因为浏览器解析HTML时会自动修正非法嵌套:p只允许phrasingcontent,遇到div即强制闭合p标签,生成的DOM结构与源码不同,JS和CSS操作均基于修正后的树。
-
String.prototype.trim()不处理零宽空格(\u200b)、BOM(\ufeff)、不间断空格(\u00a0)、全角空格(\u3000)等字符,需用正则组合清理:先清除首尾BOM及零宽符,再统一类空格为标准空格,最后trim。
-
ES7仅含指数运算符和Array.prototype.includes()两个特性,真正提升开发体验的是ES6分水岭式变革及后续ES8+的async/await、展开运算符、空值合并等实用语法糖。
-
现代JavaScript引擎已对点号(.)和方括号([])两种属性访问方式做了深度优化,二者在实际运行中性能几乎无差异;选择应基于语义需求(静态/动态)而非性能考量。