-
严格模式禁止未声明变量赋值、with语句、重复函数参数、八进制字面量(010)、arguments.callee/caller,并使this在非对象调用时为undefined;启用需首行字符串"usestrict",ES6模块默认启用。
-
Less多层嵌套需用&引用父选择器,避免过深(三层以上)导致高特异性和难维护;应主动用&__xxx构建BEM命名空间,而非依赖缩进模拟DOM深度。
-
生成器函数是可暂停的函数,返回实现迭代器和可迭代协议的Generator对象;通过function*定义,yield实现惰性求值与状态暂停,每次next()触发一次执行并返回值,适合处理无限序列或大数据流以节省内存。
-
JavaScript变量是存储数据的容器,用let声明可变变量、const声明只读变量(对象/数组内容仍可修改),避免使用var;赋值用=号,const必须声明时赋值;命名需遵守规则并推荐小驼峰式。
-
可通过CSS的border-radius属性实现HTML5按钮圆角效果:一、设固定像素值(如8px);二、用50%得圆形或椭圆角;三、分别设定四角半径;四、结合box-shadow和transition增强交互;五、用CSS变量统一管理圆角尺寸。
-
使用JavaScript开发CLI工具可借助Node.js和npm生态快速构建,适合自动化、构建等任务。通过commander.js或yargs解析命令,inquirer.js实现交互,chalk美化输出,ora添加加载动画。创建工具需初始化项目、编写入口文件并配置package.json的bin字段,使用npmlink测试后可发布至npm供全局安装。建议提供帮助信息、处理异常、支持配置文件并编写测试,提升可用性与稳定性。
-
首先创建外部CSS文件并编写样式规则,然后在HTML的head中使用link标签引入该文件,最后通过浏览器验证样式是否成功加载并正确应用。
-
最直接且最常用的方法是使用disabled属性,它是一个布尔属性,只需在表单元素上添加disabled即可使其不可编辑、不可点击且无法通过Tab键聚焦,同时该元素的值不会随表单提交;disabled可用于input、textarea、select、button和fieldset等元素,而与readonly的区别在于:disabled完全禁用元素并阻止其值提交,readonly仅禁止修改但保留提交功能;通过JavaScript可动态控制disabled状态,设置element.disabled=true或f
-
最可靠表单验证入口是formsubmit事件,需preventDefault后调checkValidity/reportValidity;禁用按钮click验证;实时验证须防抖;自定义错误用setCustomValidity;type="number/date"需注意兼容性问题。
-
JavaScript需通过<inputtype="file">获取文件,用FormData构造请求体,再以fetch发送至服务器;files为只读类数组,FormData自动处理Content-Type与boundary,fetch不可直接监听进度。
-
JavaScript实现动画的核心是通过requestAnimationFrame实现与浏览器刷新率同步的高效更新,结合CSS处理简单动画、JS控制复杂交互,并可扩展至SVG、Canvas及物理引擎等高级场景。
-
:first-child和:last-child不生效是因为它们只匹配父元素的第一个/最后一个子节点,不区分类型;若首个子节点是注释或空格文本,则li:first-child不触发。
-
JavaScript比较运算符有==、===、!=、!==、>、<、>=、<=;常见误用是==的隐式类型转换(如0==false为true),应优先使用===,例外是value==null用于同时匹配null/undefined。
-
IntersectionObserver触发不准主因是默认threshold=0过于敏感,应设为[0.1,0.3,0.5]并配合class切换、forwards动画保持、兼容性降级及仅对opacity/transform动画等优化。
-
StyledComponents是用JavaScript创建带样式的React组件,样式作用域天然隔离、支持props动态计算、可复用JS工具链且SSR友好;它不是“用JS写CSS”,而是将样式封装进组件内部,每个样式块对应一个真实React组件。