-
id是唯一标识,class是复用标签;id用于锚点、label绑定和高频JS访问,class适用于样式复用、组件化开发及行为解耦,重复id会导致getElementById返回首个匹配元素且难以排查。
-
WebSockets适用于客户端与服务器间的实时文本通信,如聊天室;WebRTC用于点对点音视频通话和低延迟数据传输,需WebSocket辅助信令交换。
-
小屏通知浮窗被截断应通过媒体查询动态调整fixed定位偏移和宽度:在768px及480px断点下调小top/right值,480px下设width:calc(100vw-16px)并显式left:auto,禁用transform替代定位,键盘弹出时需JS配合处理。
-
迭代器是JavaScript中按需逐个获取序列值的统一遍历机制,可迭代对象则需实现[Symbol.iterator]方法;迭代器必须有返回{value,done}对象的next()方法,可迭代对象须通过该方法返回合法迭代器,生成器函数可简化实现。
-
统一表单控件样式需重置appearance、显式定义边框背景内边距,自绘select箭头,用CSS变量暴露主题色等可覆盖属性,配合:focus-visible与键盘测试保障可访问性。
-
flex-wrap:wrap在移动端不生效主因是父容器缺width/max-width约束或子项含white-space:nowrap、固定宽度未配flex-shrink:1,导致换行条件未触发。
-
::after伪元素通过CSS在卡片内容后插入虚拟层,常用于添加装饰边框、悬停遮罩、清除浮动和角标标识。1.可创建渐变描边或阴影提升视觉效果;2.图片卡片悬停时显示半透明遮罩增强交互提示;3.解决内部浮动导致的布局塌陷问题;4.在角落动态添加“推荐”等状态标签。需配合position:relative与z-index控制定位和层级,结合transition实现动画,保持HTML结构简洁且样式灵活。
-
JavaScript变量是词法环境中的绑定名称;var具函数作用域、提升且初始化为undefined,let/const具块级作用域、提升但受TDZ限制,访问未初始化会抛ReferenceError,应默认用const、次选let、弃用var。
-
现代事件绑定首选addEventListener,支持多监听器、可移除、语义清晰;避免onclick属性或赋值覆盖;动态元素需事件委托;慎用preventDefault和stopPropagation;移动端可禁用缩放消除click延迟。
-
iOSSafari全屏失效主因是video标签缺失playsinline和webkit-playsinline属性,且需绑定用户手势调用requestFullscreen(),同时排除父容器CSS限制、插件配置干扰及WebView策略影响。
-
遮罩层未铺满全屏的根本原因是fixed元素默认尺寸为内容自适应,应设inset:0或宽高100%;需确保z-index足够大、pointer-events正常、背景色不透明,并注意iOSSafari视口变化及深色模式适配。
-
最常见的原因是href属性值无效,如为空、空格、javascript:void(0)未配事件、协议或路径拼写错误;其次为缺少rel="noopener"被安全策略拦截;再者是JS阻止默认行为后未兜底跳转;最后是页面被sandboxiframe嵌入导致外链禁用。
-
JavaScript是XSS和CSRF攻击的主要执行载体,防范需控制数据流向、限制执行上下文、切断攻击链路:XSS防御重在输入过滤、输出编码、执行隔离;CSRF防御核心是校验不可预测且绑定会话的凭证;还需关注第三方库风险、本地存储安全、重定向校验及错误信息泄露。
-
应选用TinyMCE、Quill或CKEditor5等富文本编辑器直接替换textarea,初始化时绑定DOM节点,通过getData()获取HTML并同步至hiddeninput,确保表单提交含格式数据。
-
柯里化是将多参数函数转换为单参数函数序列的技术。例如,curry(add)(1)(2)(3)返回6,通过fn.length判断参数是否收集完毕,支持参数复用,如预设日志级别或校验规则,提升代码灵活性与复用性。