-
迭代器是JavaScript中按需逐个获取序列值的统一遍历机制,可迭代对象则需实现[Symbol.iterator]方法;迭代器必须有返回{value,done}对象的next()方法,可迭代对象须通过该方法返回合法迭代器,生成器函数可简化实现。
-
IE9及以下不支持hidden属性,必须用display:none替代,并配合aria-hidden和CSS类控制;IE10部分支持但有渲染异常。
-
语义化标签需按内容角色而非样式选用:article用于可独立分发的内容单元,section用于同主题逻辑分组,aside用于非核心补充信息,nav专用于导航链接集合。
-
JavaScript通过WebWorkers实现多线程并发,配合SharedArrayBuffer与Atomics支持共享内存和原子操作,可在浏览器和Node.js中进行高效并行计算,但需满足跨源隔离等安全策略。
-
媒体查询断点生效取决于语法结构、单位选择和逻辑组织,而非数值本身;应统一用min-width、避免混用、确保viewport标签正确、禁用rem而优选em或px,并依据内容崩坏点而非设备尺寸设定断点。
-
正确使用link标签需包含rel="stylesheet"、href指向CSS文件路径,建议放在head中确保样式优先加载,可结合media等属性优化适配不同场景。
-
使用Vim插件UltiSnips和vim-snippets可大幅提升HTML/CSS编码效率。首先通过Plug安装插件并在.vimrc中配置,接着在~/.vim/after/snippets/目录下创建html.snippets和css.snippets文件,分别定义html5和flex等常用代码片段。输入缩写如html5或flex后按Tab键即可展开为完整代码结构。此外,vim-snippets自带丰富内置片段,如form、ul>li*3和anim等,支持快速生成表单、列表和动画模板,显著减少重复
-
border-bottom分割线不可见主因是父容器高度塌陷、子元素浮动未清除或inline元素无垂直空间;需加padding-bottom、避免overflow:hidden、改用inline-block或伪元素替代。
-
break-inside:avoid仅对正常流中触发BFC的块级容器(如display:block)生效,不适用于inline、flex/grid容器本身、绝对定位或浮动元素,且依赖父容器启用多列布局。
-
JSP页面可通过直接嵌入HTML、include指令静态包含、jsp:include动态包含、Java代码输出及设置contenttype等方式集成HTML内容,实现动静态结合的网页展示。
-
PWA无法替代原生App,但在特定场景下可低成本逼近其体验;iOS因Safari限制导致安装率低、后台能力弱、地址栏无法完全隐藏,而AndroidWebView需满足HTTPS、JS启用、权限配置等条件才能注册ServiceWorker。
-
无法用Proxy+Reflect完美转发包含私有字段(#field)的类实例,因为私有字段在语法解析阶段即报错,Proxytrap和ReflectAPI均无法触达其访问逻辑。
-
display决定元素布局角色,盒模型定义其空间结构;block、inline、inline-block等值影响盒模型应用方式,配合box-sizing可精确控制尺寸与布局表现。
-
::marker可直接替换列表项符号,仅作用于display:list-item的li元素,支持content、color、font系列属性,不支持margin等布局属性,需注意浏览器兼容性及list-style相关属性的互斥关系。
-
应使用语义化模块职能类名,如hero、features、testimonials;避免数字编号、位置命名或泛化名称;变体用BEM修饰符(如hero--dark);统一小写连字符;类名补充HTML语义缺失,不依赖标签选择器。