Javascript 越南问题

Javascript 越南问题,javascript,nan,Javascript,Nan,我需要写一个代码,将大于10个字母的单词缩写为:localization->l10n。我使用javascript来实现这一点,但出现了一个错误 <html lang="en"> <head> <meta charset="UTF-8"> <title>Way Too Long Words</title> </head> <body> <input type="text">

我需要写一个代码,将大于10个字母的单词缩写为:localization->l10n。我使用javascript来实现这一点,但出现了一个错误

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Way Too Long Words</title>
</head>
<body>

       <input type="text">
       <button>abbreviate</button>
       <div id="result"></div>

<script>

    var word = document.querySelector('input').value.split('');

    document.querySelector("button").onclick = function () {
    "use strict";
    var theResult = word[0] + word.slice(1, -1).length + word[word.length - 1];

        document.getElementById("result").innerHTML = theResult;
};
</script>
</body>
</html>

太长了
缩写
var word=document.querySelector('input').value.split('');
document.querySelector(“按钮”).onclick=function(){
“严格使用”;
var-theResult=word[0]+word.slice(1,-1).length+word[word.length-1];
document.getElementById(“结果”).innerHTML=theResult;
};

如何克服这个问题

我认为您的代码目前存在两个主要问题:

  • 当前,在加载文档时,您只能设置一次
    word
    的值。您希望每次单击按钮时都发生这种情况

  • 您当前没有检查
    word
    是否超过10个字母,并尝试计算
    theResult


  • 上述两个问题的组合意味着一旦页面加载,
    word
    就被设置为空字符串,单击该按钮将始终导致
    theResult
    NaN

    我试图将js放在一个单独的文件中,并在html文件中调用它,其中包含代码:var word=document.querySelector('input')。value;document.querySelector(“按钮”).onclick=function(){“使用严格”;var-theResult=word[0]+word.slice(1,-1).length+word[word.length-1];if(word.length>10){document.getElementById(“结果”).innerHTML=theResult;}@MohamedMahmoudElkassas将代码拆分成一个单独的文件不会改变它的运行方式,但是对于较大的代码块来说,这是一个好习惯。您已经解决了问题2,但是使用页面的人可能不知道为什么他们看不到结果(我不知道这对您来说可能是个问题,也可能不是)。但是您还没有解决问题1-定义
    word
    的代码行需要在您的单击处理函数中,否则您仍然只设置
    word
    的值一次,而不是每次单击按钮。