-
JSON.stringify()易踩坑:日期变ISO字符串、函数/undefined被删、Symbol不可见、循环引用报错、BigInt需手动转字符串;需用replacer预处理,封装函数可规避多数问题。
-
利用DeviceOrientation事件可获取设备在三维空间中的方向信息,通过监听该事件并处理alpha、beta、gamma三个轴的旋转角度,实现如游戏控制或地图定向等功能;需注意浏览器兼容性与权限请求机制,在现代浏览器中应使用PermissionsAPI申请授权,并对数据进行校准以提升精度,同时结合requestAnimationFrame优化性能,避免频繁触发影响体验。
-
将HTML文件部署到Tomcat需将其放入webapps目录下指定应用文件夹,如ROOT或自建文件夹,启动服务后通过http://localhost:8080/路径访问;可通过配置web.xml创建自定义应用,启用autoDeploy实现热部署,无需重启即可更新页面。
-
JavaScript动态计算剩余天数并用CSS控制红色预警样式,HTML仅作结构容器;HTML本身无执行能力,无法读取时间或自动更新,倒计时必须由JS每秒计算差值并刷新DOM。
-
本文详解为何onclick在表单元素上仅触发一次,并提供基于change事件、语义化HTML和现代DOM操作的最佳实践方案,确保字体可访问性切换功能稳定响应。
-
必须在服务端HTML中静态写入OG标签,因社交平台爬虫不执行JS;微信要求og:image为HTTPS绝对URL且≥300×300px;Facebook、微信、微博、Twitter对OG支持差异大,需按平台适配。
-
全屏布局需重置html/body的margin和padding、设100vw/100dvh、加overflow:hidden,并配viewport标签;iOSSafari中100vh不稳,应优先用100dvh并降级处理。
-
fetch不抛HTTP错误,必须手动检查response.ok并处理response.json()可能的reject;POST需配对JSON.stringify与Content-Type;跨域带cookie需前后端CORS头配合;超时需AbortController;空响应或非法JSON易致脚本崩溃。
-
BEM通过.block__element--modifier命名规范显性化样式作用域,解决通用类滥用导致的覆盖混乱;改造需收口孤立样式类、扁平化嵌套、校验修饰符与元素命名,并用postcss-bem-linter自动约束。
-
counter-increment必须配合::before或::after的content属性才能显示编号,仅设置counter-increment仅在后台计数;content必须使用counter()或counters()函数,后者需带引号的分隔符字符串,如".",且作用域受counter-reset限制。
-
PurgeCSS删掉已用class的根本原因是它仅识别静态字符串字面量,无法处理动态拼接、JS注入或模板字符串中的类名;必须通过safelist显式声明动态类模式或确保源码中完整出现。
-
Canvas实现手势密码需手动处理坐标映射、点选判定等,因浏览器无原生组件;touchmove易漏点是因采样不均,手指滑过两点间若未落入任一点半径R内,则无法触发选中,须用欧氏距离遍历判定点。
-
在Angular16中,父组件通过@Input()向子组件传递数据时,若属性绑定语法错误(如将绑定表达式写在标签外部),会导致子组件接收到默认值(如0或空字符串),而非父组件的实际数据。
-
BEM表格结构应以业务功能为Block(如user-list-table),行、单元格作为Element,列职责用Modifier标识;禁用colgroup,列宽/对齐/响应式均通过ElementModifier控制;原生标签仅保语义,样式全由BEM类接管;Modifier需分层:职责类必选、状态类可选、交互类严格限定。
-
剩余参数(...)允许函数接收不定数量实参并自动封装为真数组,必须位于形参末位,可与普通参数共存,替代了arguments类数组对象,支持直接调用数组方法且兼容箭头函数。