尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

[js] “===“ 及 typeof

[js] “===“ 及 typeof
📅 发布时间:2026/6/30 4:35:08

"=== "是 JavaScript 的严格相等运算符,和 ==(宽松相等)有本质区别:

运算符行为
==会尝试类型转换后再比较
===值和类型都相等才为 true,不做类型转换

在本例中:
typeof window.drawPolyline === 'function'
typeof 的返回值永远是字符串(‘function’、‘undefined’、‘object’ 等)
和字符串 ‘function’ 比较,=== 直接比对,类型一致、值一致
如果写成 == 效果相同,因为两边都是 string 类型。但 === 是 JS 社区推荐做法——显式声明"我不需要类型转换",避免埋坑。

举个典型的坑:

0=='0'// true ← 字符串 '0' 被转成数字 00==='0'// false ← 类型不同,直接 false

所以在生产代码中统一用 === 是好习惯——明确、可预测
typeof 返回值表(共 8 种):

返回值触发条件示例
“undefined”未声明 / 已声明未赋值 / 显式赋 undefinedtypeof x、typeof undefined
“boolean”布尔值typeof true、typeof false
“number”数字(含 NaN、Infinity)typeof 42、typeof NaN、typeof Infinity
“bigint”BigInt 大整数typeof 1n、typeof BigInt(42)
“string”字符串typeof “hello”、typeof ‘’
“symbol”Symbol 唯一值typeof Symbol()、typeof Symbol.iterator
“function”函数(含 class)typeof function(){}、typeof class {}、typeof Math.max
“object”对象、数组、null、正则……typeof {}、typeof []、typeof null、typeof /a/

关键判断逻辑
typeof 本质上取的是 JS 引擎内部的 [[Type]] 标签,不是原型链推断:

值.内部类型标签 ──→ typeof 返回值
三个著名陷阱
① null 返回 “object”

typeofnull==="object"// true ← JS 历史 bug,永远如此

检查 null 必须用:

x===null

② 数组返回 “object”

typeof[1,2,3]==="object"// true

检查数组用:

Array.isArray([1,2,3])// true

③ NaN 返回 “number”

typeofNaN==="number"// true ← NaN 的类型是数字

typeof NaN === “number” // true ← NaN 的类型是数字

Number.isNaN(x)

undefined → “undefined”
null → “object” ← 陷阱
true/false → “boolean”
数字/NaN → “number”
1n → “bigint”
“str” → “string”
Symbol() → “symbol”
function → “function” ← 唯一的非 “object” 引用类型
其它全 → “object” ← 对象、数组、正则、null 都落这里

相关新闻

  • 开源AI应用平台gstack部署与实战:从零搭建可视化工作流
  • CasaOS:十分钟搭建个人家庭云,旧电脑变全能服务器
  • 我从顺丰转行学AI产品经理·扒完招聘数据没敢盲目乐观

最新新闻

  • AI API 429 怎么解决:区分 rate_limit 与 insufficient_quota,给 Dify、Cursor 加上退避与限流
  • Dify工作流模板宝库:零代码构建AI应用的终极指南
  • iTunes登录协议逆向全解析:从抓包到签名算法复现
  • Kafka-UI终极指南:5分钟构建企业级Kafka可视化监控平台
  • 智慧港口船舶类型AI识别:自动引导泊位
  • 存量资产提质升级 大健康赋能城市更新的湖南实践

日新闻

  • 【计算机毕业设计案例】基于 Spring Boot+Vue 的电影售票系统设计与实现 前后端分离架构下影院在线购票管理平台(程序+文档+讲解+定制)
  • 到底 TMD 用哪个: npm, pnpm, Yarn, Bun, Deno? 傻瓜, 当然用 npm 啦
  • Google限制Meta使用Gemini模型 凸显AI授权竞争白热化

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号