GraphQL 中非空标记与列表组合(如 [User]、[User!]、[User]!)各自表示什么含义?
解释 GraphQL 中非空标记与列表组合的四种 null 语义,包括错误冒泡规则和实际 schema 设计建议,帮助区分列表可空性与元素可空性。
程序员面试题库第 39 页,收录第 1901–1950 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
解释 GraphQL 中非空标记与列表组合的四种 null 语义,包括错误冒泡规则和实际 schema 设计建议,帮助区分列表可空性与元素可空性。
围绕“列表数据频繁增删时 GraphQL 分页如何保证不重复不遗漏”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明游标锚定排序键相对 offset 漂移的免疫机制及边界条件。
围绕“GraphQL 游标分页中游标应该如何生成,为什么不能直接暴露数据库主键”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明不透明游标的封装动机与排序键设计。
围绕“GraphQL 分页中游标(cursor)分页与 offset 分页各自适合什么场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较数据变动一致性、深翻页成本与跳页能力。
围绕“GraphQL 持久化查询(persisted queries)解决了哪些生产问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明预注册查询对减小请求体、防任意查询的作用及与 CDN 缓存的配合。
围绕“GraphQL 查询复杂度(query complexity)如何计算并用于限流或拒绝请求”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明按字段权重与分页参数乘数估算成本的方法。
围绕“如何防止恶意构造的超深嵌套 GraphQL 查询拖垮服务端”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明深度限制的度量与配置思路,并指出其对广度攻击的不足。
围绕“GraphQL 中 Query 与 Mutation 在执行语义上有什么实质区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明顶层 mutation 字段串行执行而 query 并行的语义保证及设计原因。
围绕“Relay Connection 规范中 edges、node、pageInfo 各自承担什么职责”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释该结构如何支撑稳定游标与 hasNextPage 判断。
围绕“GraphQL resolver 的 context 应该放什么、不应该放什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断请求级共享状态(认证、DataLoader、db 连接)与业务数据的边界。
围绕“GraphQL resolver 函数的四个参数分别是什么,各自在什么场景使用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖逐一说明 parent、args、context、info 的职责与典型用法。
本文解释 GraphQL 自定义标量 DateTime 的机制,包括 serialize、parseValue、parseLiteral 三个转换点的职责与差异,并通过具体工程场景说明如何实现和验证。同时指出常见误区:标量格式错误、字面量解析歧义。
围绕“多个 GraphQL 服务合并为统一入口时,schema stitching 与 federation 思路有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较网关层委托与子图声明式组合的责任划分。
本文解释GraphQL schema演进中哪些操作是破坏性变更,给出判断标准与例子,并说明用deprecation、字段增补和可空性控制来平滑迁移的实践边界。
本文对比 schema-first 与 code-first 两种 GraphQL schema 设计模式,从协作、一致性、工具链演进差异出发,给出适用场景判断,并指出常见误解与边界。
本题梳理 GraphQL schema 类型系统的核心组成:六种命名类型、List 与 Non-Null 修饰符、三个根操作类型及 SDL 的角色与各自职责边界。
围绕“GraphQL Subscription 的执行模型是什么,与普通查询有何本质不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明事件源触发到 payload 执行的持续流模型。
围绕“GraphQL Subscription 在多实例部署时如何保证事件正确分发”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明外部 Pub/Sub(如 Redis)解耦事件源的方案。
围绕“GraphQL Subscription 常用哪些传输协议,各自有什么限制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较 WebSocket 与 SSE 在双向性、代理兼容上的取舍。
围绕“实时性需求下 GraphQL Subscription 与轮询查询如何选择”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖按更新频率、连接成本与基础设施复杂度给出决策标准。
围绕“GraphQL 返回 Union 或 Interface 类型时服务端如何确定具体类型”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要讲清清 resolveType/__typename 的决定机制与缺失时的报错。
围绕“GraphQL 查询中变量(variables)解决了什么问题,为什么不能直接拼接字符串”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明变量分离查询与参数对缓存、注入安全和复用的价值。
围绕“<form> 的 accept-charset 属性影响什么?若省略,字符编码如何确定”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释字符集列表、默认继承页面编码。
围绕“为什么推荐用 value 属性(DOM 属性)而不是 getAttribute('value') 获取输入内容”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕强调属性为反射但当前值在属性。
围绕“autocomplete 属性有哪些重要取值?密码正确实践是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要讨论表单管理器行为,重点 autocomplete 的语义值。
围绕“autocomplete 属性如何用具体 token 描述地址或卡片信息”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明识别标准 token 支持自动填充,不列举所有类型。
围绕“在 HTML 表单中 autofocus 属性如何在页面加载时聚焦控件?它有哪些可用性注意事项”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕描述 autofocus 单页、可能影响屏幕阅读器。
围绕“<button> 的 type 属性默认是什么?不当设置可能导致什么提交问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕强调默认 type=submit,防止非预期提交,不比较 button 与 input。
围绕“复选框(checkbox)的 indeterminate 属性如何设置?它与 checked 状态有何关系”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 indeterminate 仅由脚本设置,不影响 checked。
本题讲解 input type=color 的 value 格式要求,说明传统 #rrggbb 与 alpha 通道的关系,并解释现代浏览器扩展支持与兼容注意点,给出实用判断方法。
围绕“CSS 选择器 :valid、:invalid、:user-valid 之间的区别与优先级”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释伪类基于校验状态,区分用户交互与初始状态。
围绕“<datalist> 如何与 input 关联?它是否为强制选项”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕强调 datalist 提供建议、不强制,配合 list 属性,不深入自动补全。
date 输入类型的提交值格式为 yyyy-mm-dd,不携带时区。题目明确解析了该类型与 datetime-local、time 的区别,并说明如何获取和设置值,以及提交后服务端应如何理解该日期。
围绕“datetime-local 提交的值包含哪些部分?它与 date 和时间类型的组合用途有什么不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕强调本地日期时间无时区,并对比独立日期与时间组合。
本文说明 HTML email 输入类型的约束验证机制,包括内置正则的宽松匹配、multiple 多地址语义,并分析 +号、子域名、国际化邮箱等边界条件,最后指出客户端校验不能替代服务器验证。
围绕“表单的 enctype 值有哪些?multipart/form-data 为何常用于文件上传”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较三种 enctype 的场景,不解析二进制分帧细节。
围绕“对 <fieldset> 设置 disabled 如何影响其内部控件?有哪些例外”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明除 name 本身外其它表单控件都禁用。
围绕“<fieldset> 和 <legend> 如何为表单提供可访问性分组”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖强调分组 label 的关联作用。
围绕“file 输入的 accept 与 multiple 属性如何限制可选择的文件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 accept 仅过滤建议、multiple 允许多选,不处理文件内容。
围绕“HTML5 的 form 属性如何让控件关联到外部的表单?它有什么用途与限制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明可关联同一文档中非子孙表单。
围绕“new FormData(form) 如何收集表单数据?它如何处理禁用元素”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明只有成功控件才包括,禁用被忽略。
围绕“submit 按钮如何通过 formmethod 与 formaction 覆盖其所属表单的 method 与 ac”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释按钮级覆盖机制。
围绕“formnovalidate 属性在提交按钮上如何绕过表单校验”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明仅对提交按钮生效,不改变表单的 novalidate。
围绕“hidden 输入类型在表单一侧有哪些实用场景?它的 name 与 value 提交时是否包含”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明维持状态或额外数据,不提安全用途。
围绕“image 输入类型的名称由来是什么?它提交额外坐标数据但有哪些可访问性问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 image 是一种提交按钮且提交 x/y 坐标,不覆盖图片上传。
围绕“input 的 lang 或 dir 属性如何影响输入法或提交编码”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕只谈 lang 对 IME 及 dir 对方向性的影响。
围绕“label 的 for 属性如何与表单控件关联?如果控件嵌套在 label 内部还需要 for 吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明显式与隐式关联,并解释嵌套时 for 可选。
围绕“minlength 与 maxlength 对于 textarea 和 input 的约束有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要对比两者在字符数约束及换行处理上的差异。
围绕“month 输入类型提交的值是哪一种格式?其值域的上限与下限如何设置”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 yyyy-mm 格式及 min/max 用法。
本文从 step 的基值选取规则出发,解释 step=1 的默认行为、小数步长的浮点误差陷阱,以及 step=any 恢复自由数值的效果。通过 min=50 step=0.1 的实例说明为何某些看似合法的输入被拒绝,并给出 stepMismatch 属性作为脚本检测手段。