JS 开发问题:url.includes is not a function

  • 在 JavaScript 开发中,出现如下错误信息

    Uncaught TypeError: url.includes is not a function

问题原因
  • 这个错误是,尝试调用 url 的 includes 方法,但 url 不是一个字符串
问题复现
  1. 例如,url 是一个数字
js 复制代码
let url = 123;

if (url.includes("test")) {
    console.log("Found!");
} else {
    console.log("Not found!");
}
复制代码
# 输出结果

Uncaught TypeError: url.includes is not a function
...
  1. 例如,url 是一个对象
js 复制代码
let url = { href: "https://test.com" };

if (url.includes("test")) {
    console.log("Found!");
} else {
    console.log("Not found!");
}
复制代码
# 输出结果

Uncaught TypeError: url.includes is not a function
...
注意事项
  1. 如果 url 为 null,则会出现如下错误信息
js 复制代码
let url = null;

if (url.includes("test")) {
    console.log("Found!");
} else {
    console.log("Not found!");
}
复制代码
# 输出结果

Uncaught TypeError: Cannot read properties of null (reading 'includes')
...
  1. 如果 url 为 undefined,则会出现如下错误信息
js 复制代码
let url = undefined;

if (url.includes("test")) {
    console.log("Found!");
} else {
    console.log("Not found!");
}
复制代码
# 输出结果

Uncaught TypeError: Cannot read properties of undefined (reading 'includes')
...
处理策略
  1. 异常捕获处理
js 复制代码
try {
    let url = { href: "https://test.com" };

    if (url.includes("test")) {
        console.log("Found!");
    } else {
        console.log("Not found!");
    }
} catch (error) {
    console.log(error);
}
复制代码
# 输出结果

TypeError: url.includes is not a function
...
  1. 确保 url 是字符串
js 复制代码
let url = { href: "https://test.com" };

if (typeof url === "string" && url.includes("test")) {
    console.log("Found!");
} else {
    console.log("Not found!");
}
复制代码
# 输出结果

Not found!
相关推荐
Fuyo_11197 分钟前
C++ 运行时多态与虚函数机制全面剖析【面试重点】
开发语言·c++·面试
孟健30 分钟前
Claude Code 同需求写两版对比:装不装 frontend-design 差多远?
前端·ai编程·claude
w_zero_one1 小时前
递归算法(一)
java·开发语言·算法
OpsEye1 小时前
大模型 Token 计量不准,是什么原因,怎么解决??
javascript·ai编程
Julien20042 小时前
管理机密(一)
运维·服务器·开发语言·学习方法
Chen_harmony2 小时前
七、STL与string类
开发语言·c++
沐晓时光2 小时前
C语言入门,字符串和字符串函数知识讲解
c语言·开发语言
xxxiugou1232 小时前
C++命名空间与引用全解析
开发语言·c++
梦de天空一米16882 小时前
【一个重复id让游戏卡在62%,聊聊配置表检查】
前端
ryn483982 小时前
01 一个功能模块,怎么分层才不乱
前端·ai编程·claude