javascript - 找不到重构警报的方法(练习)

标签 javascript scope refactoring

我是一个 JS 菜鸟,试图制作这个“你好,先生/小姐 你的名字!”干净的。 我看不到在 if/else 中重构警报的方法,因为那样我就失去了 var b 的值。

JS:

<script>
    "use strict";
    window.onload = function () {
        let form1 = document.getElementById('myForm');
        form1.addEventListener('submit', helloYou);
        function helloYou() {
            let x = document.getElementById("1").value; 
            let a = document.getElementById('3').value;
            if ( a === "M") {
                let b = "Mr.";
                alert('Hello ' + b + " " + x + "!");
            }
            else {
                let b = "Miss";
                alert('Hello ' + b + " " + x + "!");
            }
        }
    }
</script>

HTML:

<body>
    <form id="myForm">
        Write your name:
        <input type="text" name="yourname" id="1" placeholder="name">
        <select name="gender" id="3">
            <option value="M">Male</option>
            <option value="F">Female</option>
        <input type="submit" name="submission" id="2" value="TRY ME">
    </form>
</body>

感谢您的任何建议。

最佳答案

您可以使用三元运算符

alert('Hello ' + ( a === "M" ? "Mr." : "Miss" ) + " " + x + "!");

   function helloYou() {
        let x = document.getElementById("1").value; 
        let a = document.getElementById('3').value;
        alert('Hello ' + ( a === "M" ? "Mr." : "Miss" ) + " " + x + "!");
    }

关于javascript - 找不到重构警报的方法(练习),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49755379/

相关文章:

python - 在函数中创建的变量是否具有全局范围?

C++警告如果在函数中重新声明成员变量

c# - 在大项目中管理配置文件和代码常量

java - 重构树的递归修改

java - 新手将过程编程重构为 OOP HASHING 函数

javascript - MutationObserver 类更改

JavaScript 无法从 HTML 表单正确运行

javascript - 将绑定(bind)分配给键(keyMap)

javascript - 如何使用 jquery 在输入字段中显示变量?

ruby-on-rails - 具有组合属性的 Rails 作用域