-
JavaScript递归深度由引擎调用栈容量决定,Chrome约13500层、Firefox约4000–7000层、Safari约20000–25000层;受参数大小、严格模式、嵌套调用及开发者工具影响;推荐改用迭代、微任务或运行时降级保障安全。
-
点击区域错位源于浏览器缩放时fixed元素合成层未重绘,导致坐标脱节;应优先用sticky替代fixed,或加translateZ(0)强制重绘,辅以事件监听动态修正。
-
使用内部CSS可为单个HTML页面定义样式,无需外部文件。首先在<head>中添加<styletype="text/css">标签,然后在其中编写选择器和样式规则,如p{color:blue;font-size:16px;},支持标签、类和ID选择器;最后保存文件并用浏览器打开,检查样式是否正确应用,若未生效需排查语法或拼写错误。
-
draggable属性可设置为true、false或auto,其中true表示元素可拖动,false明确禁止拖动,auto则由浏览器根据元素类型决定;2.传递复杂数据时,可通过DataTransfer对象的setData()和getData()方法使用JSON字符串等形式传输,并可提供text/plain等备用格式;3.视觉反馈优化包括设置cursor样式、自定义拖动图像setDragImage()、目标区域高亮、合理配置effectAllowed与dropEffect以指示操作类型,并在放置后提供成功反
-
CSS属性选择器通过[属性="值"]语法精确匹配元素,如input[type="submit"];还可使用~=、|=、^=、$=、*=实现包含、前缀、后缀、子串等匹配方式,用于文件类型图标、数据属性等场景。
-
用linear-gradient实现分段颜色进度条需将色标百分比与业务阈值严格对齐(如0%–30%蓝、30%–70%黄、70%–100%红),配合overflow:hidden容器和动态width控制显示长度,确保无缝衔接、无跳变。
-
DOM操作本身不拖慢JS性能,但频繁低效访问(如循环中多次调用getElementById)会因重复遍历、布局计算和同步开销导致卡顿;应缓存元素引用并批量更新。
-
BEM是用于HTMLclass命名的语义化约定,解决多人协作中组件归属、复用性与状态识别问题;它通过block__element--modifier格式明确结构关系与状态,要求命名与DOM层级严格对应,不参与渲染但提升可维护性。
-
Proxy是JavaScript中用于创建代理对象的构造函数,可拦截并自定义对目标对象的操作。通过handler中的陷阱(如get、set、has等),能实现属性读取监控、数据验证、属性存在性控制等功能。例如使用set陷阱可在赋值时校验数据类型,确保age字段为数值且在合理范围内,从而实现响应式更新或数据保护机制。
-
模板字符串用${}插变量,是JS原生语法;支持简单表达式但禁复杂逻辑;列表渲染用map+join;可调纯函数但禁异步或DOM操作;innerHTML失效多因非法HTML或空白符;需手动转义防XSS。
-
poster属性仅在视频未加载或加载失败时显示,一旦元数据就绪即被替换;不显示常见于autoplay触发延迟、资源404、格式不兼容、图片过大或source未声明type等加载策略问题。
-
Map.prototype.entries()返回的是按插入顺序产出[key,value]数组的MapIterator对象,该迭代器不可重用、不响应后续Map变更,仅反映调用时的快照状态。
-
iOSSafari中min-height:100vh不生效是因视口计算包含地址栏,导致实际高度小于可见区域;推荐优先使用min-height:100dvh(iOS16.4+支持),并用@supports降级至100vh;兼容老版本需JS动态设置--vh变量并监听resize和orientationchange。
-
在TypeScript项目切换为ESM("type":"module"+"module":"esnext")后,省略.ts扩展名的导入会失败;启用allowImportingTsExtensions又会导致类型检查异常。本文提供符合标准、无需手动加扩展名的安全解决路径。
-
答案:通过正则检测字符类型数量和长度判断密码强度,结合输入事件实时反馈。定义小写、大写、数字、特殊符号四类字符,统计匹配类型数,不足两类或长度小于8为弱,两类及以上且≥8为中,四类全含且≥8为强;绑定input事件动态显示强度并添加CSS样式提示,可优化空值处理与常见弱密码警告。