javascript - 为什么此函数内部未定义某些变量
问题描述
当定义第三个变量时,为什么我的前两个变量在函数内未定义:
HTML:
<p id="firstCard-el"></p>
<p id="secondCard-el"></p>
<button id="deal-btn">DEAL</button>
JS:
let firstCard = document.getElementById("firstCard-el");
let secondCard = document.getElementById("secondCard-el");
let dealButton = document.getElementById("deal-btn");
// generate randome number 1-11
function getRandomNum() {
let ranNum = Math.floor(Math.random() * 11) + 1;
console.log(ranNum);
}
// set cards to the random number
function deal() {
firstCard = getRandomNum();
secondCard = getRandomNum();
console.log(firstCard); //undefined
console.log(secondCard); //undefined
console.log(dealButton); //defined
}
dealButton.addEventListener("click", deal);
解决方案
如果您设置 firstCard 和 secondCard 等于它,getRandomNum() 需要返回一个值。
推荐阅读
- windows - 广告 msi 的 MajorUpgrade
- amazon-web-services - 安排一个 lambda 函数来执行 s3 中的所有对象
- php - 新注册的菜单不显示 WordPress
- docker-compose - python - 如何使用docker-compose接受来自控制台的数据作为python程序的输入?
- python - 以非常奇怪的方式读取文本文件
- c++ - 用于将 std::osyncstream 和 std::cout 组合在一起的 C++20 自定义类
- c++ - 在 map 中,键值对不存储在传染性内存中,因此迭代器如何使用它从一个键值对跳转到另一个键值对++
- python - Pygame俄罗斯方块块在某些条件下不向下移动
- swiftui - SwiftUI:当前视图从点击视图中增长并关闭缩回视图?
- javascript - 成功后如何使我的贝宝付款重定向?