-
try-catch仅捕获同步运行时异常,无法处理语法错误、Promise拒绝或异步回调错误;应精准包裹明确可能抛异常的同步操作(如JSON.parse),按错误类型分类处理,异步场景需配合.catch()、await+try-catch或unhandledrejection监听。
-
dragover事件未阻止默认行为是拖拽失效的最常见原因,必须在每次dragover中调用event.preventDefault();drop只触发于松手时鼠标正下方的元素,需确认目标元素尺寸、遮挡及事件绑定位置;文件读取仅限drop回调中的event.dataTransfer.files。
-
实现HTML侧边栏布局的方法有浮动、定位、Flexbox和Grid四种方案。1.浮动方案通过设置.sidebar的float:left和.content的margin-left来实现,优点是兼容性好,但需清除浮动;2.定位方案使用position:absolute让侧边栏脱离文档流,需配合position:relative的容器,灵活性更强但复杂度较高;3.Flexbox方案通过display:flex和flex:1自动填充内容区域,结构清晰且现代浏览器支持良好;4.Grid方案采用grid-templa
-
flex属性三值依次为flex-grow、flex-shrink、flex-basis,不可调换;按比例分配宽度只需设flex-grow,且flex-basis应为0(非auto)以避免内容宽干扰;margin/border会侵占剩余空间,推荐用gap和box-sizing:border-box保障比例准确。
-
JavaScript原型链是属性查找的底层机制:prototype是函数对象属性,指向实例原型;__proto__是对象内部链接,指向其原型。查找时从自身开始逐级向上,直至null。
-
HTML文件不能保存图片,只能用<img>标签引用图片;路径必须匹配物理位置:同目录写“photo.jpg”,子目录写“images/photo.jpg”,禁用本地绝对路径;Python生成时需确保src路径与HTML文件相对位置正确。
-
outline不占布局空间且位于border外,用于非干扰性提示;border属盒模型部分,影响尺寸与结构,适用于常规边框设计。
-
JavaScript中if/elseif/else和switch用于条件判断,for/while/do...while实现循环;if条件自动转布尔值,switch严格相等且需break防穿透,for适合已知次数,while先判后执,do...while至少执行一次。
-
WebWorkers无法直接操作DOM,因运行在独立线程且无document、window等API,只能通过postMessage与主线程通信;支持console、fetch、ArrayBuffer等,不支持localStorage、XMLHttpRequest;需注意结构化克隆限制、同源脚本要求及SharedArrayBuffer使用门槛。
-
HTML中连续空格失效是因浏览器默认合并空白字符; 为不换行空格, 约2字符宽, 约4字符宽;推荐用white-space:pre-wrap等CSS控制,或<pre>标签处理整段原样文本。
-
应使用<textarea>实现多行文本输入,它原生支持换行、滚动和响应输入;<inputtype="text">无法通过rows/cols变为多行,且<textarea>必须闭合、用.value读写内容、靠CSS精确控制尺寸。
-
inline-block通过使元素并排排列且保留宽高,替代float实现布局,避免高度塌陷,无需清除浮动,配合font-size:0等方法可消除间隙,支持vertical-align对齐,相比float更易管理,适用于兼容老浏览器的轻量级场景。
-
border总是占据空间,是否计入width/height由box-sizing决定:content-box下不计入,总宽=width+padding+border;border-box下计入,总宽恒等于width。
-
移动端文字强制不换行需用white-space:nowrap、word-break:keep-all和overflow:hidden组合;单行省略还需width、overflow:hidden与text-overflow:ellipsis三者缺一不可,且元素需为block或inline-block。
-
滚动文字逐字显现本质是字符级定时插入,需用JS将字符串转为Unicode安全数组并以requestAnimationFrame或带时间戳的setTimeout逐个写入DOM,避免split('')导致emoji等乱码。