qq_42669510 2023-08-27 21:13 采纳率: 73.3%
浏览 9
已结题

JavaScript函数没有调用,自动运行bug问题

为什么这段函数没有调用但却自动执行了?麻烦各位解答下,谢谢


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //1.弹出用户名和密码框
      //2.拿着用户输入的用户信息取已注册的数组进行查找
      //3.找到即登录成功,没找到即登录失败

      //1.已注册用户信息和现有用户信息
      let loginList = [
        { userName: 'admin', password: 'admin321' },
        { userName: 'zhangsan', password: 'zs321' },
        { userName: 'lisi', password: 'ls321' },
        { userName: 'yyqx', password: 'yyqx321' },
      ]
      let userInfo = {
        token1: {
          city: '杭州',
          money: '1000w',
          sex: '女',
          userName: 'admin',
          password: 'admin321',
        },
        token2: {
          city: '北京',
          money: '1100w',
          sex: '女',
          userName: 'zhangsan',
          password: 'zs321',
        },
        token3: {
          city: '北京',
          money: '800w',
          sex: '男',
          userName: 'lisi',
          password: 'ls321',
        },
        token4: {
          city: '天津',
          money: '600w',
          sex: '男',
          userName: 'yyqx',
          password: 'yyqx321',
        },
      }
      //功能函数一、 查找函数
      // userFind()
      function userFind() {
        let isFind = false
        const uname = prompt('请输入登录用户名')
        const password = prompt('请输入登录密码')
        for (let i = 0; i < loginList.length; i++) {
          if (loginList[i].userName === uname && loginList[i].password === password) {
            isFind = true
            alert('登录成功')
            const token = `token${Math.floor(Math.random() * 4 + 1)}`
            alert(`
          地址:${userInfo[token].city}
          存款:${userInfo[token].money}
          性别:${userInfo[token].sex}
          姓名:${uname}
          密码:${password}
          `)
            break
          }
        }
        //利用返回值的值来为外界函数调用
        return { isFind: isFind, uname: uname, password: password }
      }

      if (!userFind().isFind) {
        alert('登录失败')
      }
    </script>
  </body>
</html>

  • 写回答

3条回答 默认 最新

  • magic33416563 2023-08-27 21:38
    关注

    JS会执行函数定义外的执行语句。

    直接调用就可以了 var rtn=userFind();或者引入jQuery,采用$(function(){ var rtn=userFind() });

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月13日
  • 已采纳回答 9月5日
  • 创建了问题 8月27日

悬赏问题

  • ¥15 esp32驱动GC9A01循环播放视频
  • ¥15 惠普360g9的最新bios
  • ¥15 配置hadoop时start-all.sh老是启动失败
  • ¥30 这个功能用什么软件发合适?
  • ¥60 微信小程序,取消订单,偶尔订单没有改变状态
  • ¥15 用pytorch实现PPO算法
  • ¥15 关于调制信号的星座图?
  • ¥30 前端传参时,后端接收不到参数
  • ¥15 这是有什么问题吗,我检查许可证了但是显示有呢
  • ¥15 机器学习预测遇到的目标函数问题