You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击prompt取消报Cannot read properties of null (reading 'split')如何解决

问题根因
  • 你没有对prompt()的返回值做非空校验就直接调用split()方法:当用户点击弹窗「取消」按钮时,prompt()会返回null,null没有split方法,直接调用就会抛出Cannot read properties of null (reading 'split')错误。
  • 原代码的终止判断逻辑错误:if (prompt === null)中prompt是浏览器内置的全局函数,永远不会等于null,这个判断永远不会触发,也无法终止循环。
修复后代码
function UserList () {
    let users = [];
    while(true) {
        // 先把prompt返回值存到变量中
        const inputValue = prompt('Please, enter your name surname?');
        // 先判断是否点击了取消,是则终止循环
        if (inputValue === null) {
            alert('cancel');
            break;
        }
        // 非空的情况下再拆分姓名存入数组
        users.push(inputValue.split(' '));
    }
    // 按需求打印数组内容
    console.log(users);
}
let userList = new UserList();
逻辑说明
  • 先接收prompt()的返回值并存入变量,优先判断返回值是否为null,如果是就调用break直接终止死循环
  • 只有确认用户有输入内容(返回值不为null)时,才执行split拆分操作存入数组
  • 循环结束后统一打印最终的姓名数组结果

内容的提问来源于stack exchange,提问作者Roman Chernyakhovskyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:06:03