-
本文解析JavaScript类中同名字段(如method="sss")与方法(如method(){})在继承时的行为差异:前者作为实例自有属性被初始化,后者定义在原型上;当子类重写同名方法时,实例属性优先于原型方法,导致看似“覆盖失效”的现象。
-
normalize.css更适合作为现代项目的基底,它统一跨浏览器差异并保留有用默认样式;reset.css则彻底清零样式,适合强定制化项目;二者均需在框架CSS之前加载,并配合base.css和框架变量进行可控微调。
-
构建可复用组件需封装、独立与易集成,WebComponents提供原生支持。1.使用CustomElements定义自定义标签,通过customElements.define()注册继承HTMLElement的类,实现自定义元素;2.结合ShadowDOM隔离样式与结构,在构造函数中调用attachShadow()并设置shadowRoot.innerHTML,避免全局污染;3.支持属性与事件,通过observedAttributes监听属性变化,attributeChangedCallback触发更新,
-
::marker是CSS伪元素,用于设置列表项前的标记样式。通过color属性可直接修改符号颜色,如li::marker{color:red;}将项目符号变为红色。支持color、content、text-shadow及部分字体属性。现代浏览器兼容良好,IE不支持。兼容性要求高时可用list-style:none结合::before自定义。
-
canvas标签本身不绘图,仅提供空白画布,绘图需通过JavaScript调用getContext('2d')获取2D渲染上下文;width/height须用HTML属性设置,CSS仅缩放;drawImage需确保图像加载完成;clearRect清除像素,save/restore管理绘图状态。
-
ES6模块是原生静态系统,import必须顶层以支持编译期分析;命名导出需大括号且名称一致,default导出可重命名;路径须带扩展名或斜杠,裸导入需导入映射。
-
localStorage和sessionStorage只支持字符串值,存对象需JSON.stringify()、取时用JSON.parse()并加try/catch;前者同源永久存储,后者仅限当前tab;敏感信息勿存,注意容量限制与XSS风险。
-
Vite通过依赖预构建提升开发效率,利用esbuild将CommonJS/UMD转换为ESM,减少HTTP请求并加快加载速度;通过缓存机制和智能增量更新实现秒级重启,结合optimizeDeps配置可优化大型项目性能。
-
应使用语义化列表标签:无序内容用<ul>,有序步骤用<ol>,条目必须为<li>;避免<div>模拟列表;CSS控制外观时拆解list-style属性;横向布局用flex;坚持原生标签保障可访问性。
-
JavaScript隐式转换是值在不同上下文中自动类型转换:加号优先字符串拼接,算术符强制转数字,条件判断转布尔(仅false、0、-0、""、null、undefined、NaN为假),==宽松比较会类型调和,===严格比较不转换。
-
答案:结合PBR与阴影映射可在WebGL中实现物理光照与阴影。首先在片元着色器中使用BRDF模型(如GGX)计算基于反照率、金属度、粗糙度和法线贴图的光照响应,支持环境光、点光源等类型;接着通过深度纹理实现阴影映射——从光源视角渲染场景生成shadowmap,在主通道中将片段深度与shadowmap比较以判定阴影,并采用PCF滤波软化边缘;若集成Ammo.js等物理引擎,需每帧同步物体变换矩阵并更新光源视图矩阵,动态物体实时更新shadowmap,静态物体检影烘焙以优化性能;建议采用级联阴影映射提升远距离
-
绝对定位元素的margin看似无效,实则影响盒模型边界而非定位;真正控制位置的是top/right/bottom/left;仅当这些值为auto(如margin:auto居中)时margin才参与定位计算。
-
浮动与绝对定位本质冲突,混用会导致布局错乱、高度塌陷等问题;因absolute完全脱离文档流,会忽略float声明,应明确职责、择一使用,优先采用Flexbox或Grid等现代布局方案。
-
display属性切换导致尺寸突变的根本原因是不同值触发的盒模型行为完全不同:inline元素忽略宽高和上下边距,需改用inline-block或block;display:none切换会引发重排,应预留空间或用visibility/opacity替代;flex/grid中子项display变化不脱离容器布局逻辑;table相关值启用表格算法,易引发意外重算。
-
scrollbar-color仅Firefox原生支持,Chrome/Edge需用::-webkit-scrollbar;其值为滑块色和轨道色,顺序不可颠倒,且不能被WebKit伪元素覆盖。