Javascript 我的函数未在其他函数中调用

Javascript 我的函数未在其他函数中调用,javascript,function,if-statement,Javascript,Function,If Statement,我试图得到我的函数来确定单数和复数错误。我在全局范围内编写了两个函数,在名为errorChecker的主函数中调用,但它拒绝执行。我想知道为什么?我做错了什么。我真的是新的编码,所以,请理解。下面是代码。它不会运行,因此errorChecker功能不会检测到错误 function errorChecker (num1, word1, num2, word2) { if (num1 === Number(num1) && word1 === String(word1) &

我试图得到我的函数来确定单数和复数错误。我在全局范围内编写了两个函数,在名为
errorChecker
的主函数中调用,但它拒绝执行。我想知道为什么?我做错了什么。我真的是新的编码,所以,请理解。下面是代码。它不会运行,因此
errorChecker
功能不会检测到错误

function errorChecker (num1, word1, num2, word2) {
  if (num1 === Number(num1) && word1 === String(word1) && num2 === Number(num2) && word2 === String(word2)) {
    console.log('all parameters are ok')
  } else {
    return false
  }
  if (wordChecker(word1) === true && (wordChecker(word2) === true)) {
    return true
  } else {
    console.log('invalid parameter')
  }
  if (singularChecker(num1, word1) === false && (pluralChecker(num2, word2) === false)) {
    console.log('correct singular and plurals')
  } else {
    return true
  }
}
// For checking function effectiveness
const num1 = 1
const word1 = 'minutes'
const num2 = 2
const word2 = 'minute'

console.log(errorChecker(num1, word1, num2, word2))
// function to set exact word parameters that can be used
function wordChecker (word) {
  switch (word) {
    case 'seconds':
    case 'second':
    case 'minutes':
    case 'minute':
    case 'hours':
    case 'hour':
    case 'days':
    case 'day':
      return true
    default:
      return false
  }
}

function pluralChecker (digit, letters) {
  switch (letters.toLowerCase()) {
    case 'seconds':
    case 'minutes':
    case 'hours':
    case 'days':
      if (digit !== 1) {
        return true
      } else {
        return false
      }
  }
}

function singularChecker (numz, wordz) {
  switch (wordz.lowerCase()) {
    case 'second':
    case 'minute':
    case 'hour':
    case 'day':
      if (numz === 1) {
        return true
      } else {
        return false
      }
  }
}

根据浏览器的不同,可能是您试图在定义函数之前调用函数(从上到下)

这段代码似乎在Windows上的Firefox中运行良好

然而,我发现您的编码风格还有很大的改进空间

在每个函数中添加一个
console.log
,查看它是否和何时运行,以及您向其中发送了什么

将行
console.log(errorChecker(num1,word1,num2,word2))
移到底部

使用
在每行末尾。有些专家不这样做,但由于您是编程新手,请遵循该语言的规则

“像专业人士一样学习规则,这样你就可以像艺术家一样打破规则。”

下面有很多学习机会,请阅读我的评论并完成代码。您的下一个挑战是在代码中使用一些数组和对象

函数错误检查器(num1,word1,num2,word2){
log(“errorChecker()”,num1,word1,num2,word2);
var isValid=true;//我们假设valid=true,直到坏事情发生。
如果(typeof num1===“number”&&typeof word1==“string”&&typeof num2==“number”&&typeof word2==“string”){
log('所有参数都正常');
}否则{
console.error('参数错误:');
isValid=false;
}
变量isWord1Good=wordChecker(word1),
isWord2Good=文字检查器(word2);
如果(isWord1Good==true&&isWord2Good==true){
//不要回来,你只完成了一张支票。
//返回true;
log(“wordChecker说:'文字太好了'”);
}否则{
console.error('wordChecker不喜欢',isWord1Good,isWord2Good);
isValid=false;
}
//好的,做我上面做的同样的事情,我累了
if(singularChecker(num1,word1)==false&(pluralChecker(num2,word2)==false)){
console.log('正确的单数和复数')
}否则{
console.log('不正确的单数和复数')
isValid=false;
}
//最后,在函数中的某个点返回,这使调试变得非常容易:
返回有效;
}
//用这个做类似的事情
//函数设置可以使用的精确单词参数
函数字检查器(字){
var-wordIsTime=false;
开关(字){
案例“秒”:
第二个案例:
案例“会议记录”:
案件‘分钟’:
案件"时间":
案件‘小时’:
案件‘天’:
案件日期:
wordIsTime=true;
}
//这里有一个日志,显示您所使用的fn、发送的内容以及返回的内容:
log(“wordChecker()”,word,wordIsTime);
返回单词的时间;
}
//用这个做类似的事情
函数复数检查器(数字、字母){
开关(字母.toLowerCase()){
案例“秒”:
案例“会议记录”:
案件"时间":
案件‘天’:
如果(数字!==1){
返回true;
}否则{
返回false;
}
}
}
函数奇点检测器(numz、wordz){
//lowerCase()不是函数
开关(wordz.toLowerCase()){
第二个案例:
案件‘分钟’:
案件‘小时’:
案件日期:
如果(numz==1){
返回true;
}否则{
返回false;
}
}
}
//用于检查功能有效性
常数num1=1;
const word1=‘分钟’;
常数num2=2;
const word2=‘分钟’;

日志(errorChecker(num1,word1,num2,word2))根据浏览器的不同,可能是您试图在定义函数之前调用函数(从上到下)

这段代码似乎在Windows上的Firefox中运行良好

然而,我发现您的编码风格还有很大的改进空间

在每个函数中添加一个
console.log
,查看它是否和何时运行,以及您向其中发送了什么

将行
console.log(errorChecker(num1,word1,num2,word2))
移到底部

使用
在每行末尾。有些专家不这样做,但由于您是编程新手,请遵循该语言的规则

“像专业人士一样学习规则,这样你就可以像艺术家一样打破规则。”

下面有很多学习机会,请阅读我的评论并完成代码。您的下一个挑战是在代码中使用一些数组和对象

函数错误检查器(num1,word1,num2,word2){
log(“errorChecker()”,num1,word1,num2,word2);
var isValid=true;//我们假设valid=true,直到坏事情发生。
如果(typeof num1===“number”&&typeof word1==“string”&&typeof num2==“number”&&typeof word2==“string”){
log('所有参数都正常');
}否则{
console.error('参数错误:');
isValid=false;
}
变量isWord1Good=wordChecker(word1),
isWord2Good=文字检查器(word2);
如果(isWord1Good==true&&isWord2Good==true){
//不要回来,你只完成了一张支票。
//返回true;
log(“wordChecker说:'文字太好了'”);
}否则{
console.error('wordChecker不喜欢',isWord1Good,isWord2Good);
isValid=false;
}
//好的,做我上面做的同样的事情,我累了
if(singularChecker(num1,word1)==false&(pluralChecker(num2,word2)==false)){
console.log('正确的单数和复数')
}否则{
console.log('不正确的单数和复数')
isValid=false;
}
//最后,在函数中的某个点返回,这使调试变得非常容易:
返回有效;
}
//用这个做类似的事情
//函数设置精确的wor