Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未使用提示/警报将JavaScript函数识别为函数_Javascript_Function_Alert_Prompt - Fatal编程技术网

未使用提示/警报将JavaScript函数识别为函数

未使用提示/警报将JavaScript函数识别为函数,javascript,function,alert,prompt,Javascript,Function,Alert,Prompt,我试图写一个程序,将生成一个简短的房地产描述。我有(数组)带形容词的词库,提示输入具体细节(平方英尺、卧室等),两个函数和else-if语句生成特定句子,然后是一个“description”变量,将这些句子、提示输入和词库形容词连接在一起 调用最后一个描述变量中函数的结果时遇到问题。我将函数存储为一个变量,其中包含它正在评估的变量(位置和walkDist)。当我运行这个程序时,它不会给我这些变量的提示,也不会打印出函数的代码,而不是我想要的句子 当我从函数中取出location和walkDist

我试图写一个程序,将生成一个简短的房地产描述。我有(数组)带形容词的词库,提示输入具体细节(平方英尺、卧室等),两个函数和else-if语句生成特定句子,然后是一个“description”变量,将这些句子、提示输入和词库形容词连接在一起

调用最后一个描述变量中函数的结果时遇到问题。我将函数存储为一个变量,其中包含它正在评估的变量(位置和walkDist)。当我运行这个程序时,它不会给我这些变量的提示,也不会打印出函数的代码,而不是我想要的句子

当我从函数中取出location和walkDist时,会得到提示,但在输入0,1,2后,网页返回错误

由于某种原因,该函数未被识别为函数。如果没有用于此用例的函数,是否有我缺少的东西,或者是否有更好的方法来存储else

    let wordBank1 = ['Breathtaking', 'Incredible', 'Beautiful', 'Stunning', 'Incredible', 'Magnificent']
let wb1Selector = wordBank1[Math.floor(Math.random()*wordBank1.length)]
let wordBank2 = ['gorgeous', 'panoramic', 'expansive', 'compelling', 'immaculate']
let wb2Selector = wordBank2[Math.floor(Math.random()*wordBank2.length)]

let sqFoot = prompt(alert('how many square feet?'))
let bedRoom = prompt(alert('how many bedrooms?'))
let bathRoom = prompt(alert('how many bathrooms?'))
let lotSize = prompt(alert('how big is the lot size?'))

// when run program is not recognizing bayBeach and walkingDistance as functions
var location = prompt(alert('if this is on beach block enter a 1, if this is a bayfront enter a 2, if it is neither enter a 0'))
let bayBeach = function(location) {
  if (location == 1) {
    return 'only a block from the beach, this home boasts of ' + wb2Selector + ' views.'
  } else if (location == 2) {
    return 'situated on the bay, this property offers ' + wb2Selector + ' views.'
  }
}

var walkDist = prompt(alert('if this home is between 90th and 110th street enter a 1, if it is above 40th street enter a 2, otherwise enter a 0'))
let walkingDistance = function(walkDist) {
  if (walkDist == 1) {
    return 'Enjoy your vacation within walking distance of the pizza joints and novelty shops of downtown Stone Harbor.'
  } else if (walkDist == 2) {
    return 'Your rental will keep you within a short walk of everything that downtown Avalon has to offer.'
  } else {
    return 'Get everywhere you need on your vacation with a walk to the beach and a bike ride downtown.'
  }
}

let description1 = wb1Selector + ' ' + sqFoot + ' square foot property with ' + bedRoom  + ' bedrooms and ' + bathRoom + ' bathrooms. ' + bayBeach + ' '
 + walkingDistance

 alert(description1)

问题是,虽然您已经定义了函数,但是您需要调用函数,而不仅仅是按名称引用它们。也就是说,您需要的不是
bayBeach
,而是
bayBeach(loc)
。这告诉JS使用
loc
作为输入来运行函数

在我的代码片段中,我将
location
更改为
loc
,因为
location
在JS中是一个全局名称(指页面位置),编译器不希望重新声明它

此外,您不需要在提示中发出警告,这只会显示两个单独的对话框

让wordBank1=[“惊人的”、“不可思议的”、“美丽的”、“惊人的”、“不可思议的”、“壮丽的”];
让wb1Selector=wordBank1[Math.floor(Math.random()*wordBank1.length)];
让wordBank2=[‘华丽’、‘全景’、‘广阔’、‘引人注目’、‘完美’];
让wb2Selector=wordBank2[Math.floor(Math.random()*wordBank2.length)];
让sqFoot=提示('多少平方英尺?');
let卧室=提示(“有多少间卧室?”);
让浴室=提示(“有多少间浴室?”);
让lotSize=prompt('批量有多大?');
let loc=prompt('如果这是在海滩区块,则输入1;如果这是海湾前沿,则输入2;如果两者都不是,则输入0');
let walkDist=prompt('如果该房屋位于第90街和第110街之间,则输入1;如果该房屋位于第40街之上,则输入2;否则输入0');
让bayBeach=功能(位置){
如果(位置==1){
return“离海滩只有一个街区,这所房子拥有“+wb2Selector+”视图。”
}else if(位置==2){
return“位于间隔上,此属性提供”+wb2Selector+“视图”
}
}
让步行距离=功能(步行距离){
if(walkDist==1){
return“在步行即可到达市中心石港的比萨饼店和新奇商店的地方享受假期。”
}else if(walkDist==2){
return“您的租金将使您距离阿瓦隆市中心提供的一切都很近。”
}否则{
return“在度假期间,步行到海滩,骑自行车到市区,到达你需要的任何地方。”
}
}
让我们描述1=wb1Selector+“”+sqFoot+“”平方英尺房产,带有“+卧室+”卧室和“+浴室+”浴室。“+海湾海滩(loc)+”+
步行距离(步行距离)

alert(description1)
问题在于,虽然您已经定义了函数,但是您需要调用函数,而不仅仅是按名称引用它们。也就是说,您需要的不是
bayBeach
,而是
bayBeach(loc)
。这告诉JS使用
loc
作为输入来运行函数

在我的代码片段中,我将
location
更改为
loc
,因为
location
在JS中是一个全局名称(指页面位置),编译器不希望重新声明它

此外,您不需要在提示中发出警告,这只会显示两个单独的对话框

让wordBank1=[“惊人的”、“不可思议的”、“美丽的”、“惊人的”、“不可思议的”、“壮丽的”];
让wb1Selector=wordBank1[Math.floor(Math.random()*wordBank1.length)];
让wordBank2=[‘华丽’、‘全景’、‘广阔’、‘引人注目’、‘完美’];
让wb2Selector=wordBank2[Math.floor(Math.random()*wordBank2.length)];
让sqFoot=提示('多少平方英尺?');
let卧室=提示(“有多少间卧室?”);
让浴室=提示(“有多少间浴室?”);
让lotSize=prompt('批量有多大?');
let loc=prompt('如果这是在海滩区块,则输入1;如果这是海湾前沿,则输入2;如果两者都不是,则输入0');
let walkDist=prompt('如果该房屋位于第90街和第110街之间,则输入1;如果该房屋位于第40街之上,则输入2;否则输入0');
让bayBeach=功能(位置){
如果(位置==1){
return“离海滩只有一个街区,这所房子拥有“+wb2Selector+”视图。”
}else if(位置==2){
return“位于间隔上,此属性提供”+wb2Selector+“视图”
}
}
让步行距离=功能(步行距离){
if(walkDist==1){
return“在步行即可到达市中心石港的比萨饼店和新奇商店的地方享受假期。”
}else if(walkDist==2){
return“您的租金将使您距离阿瓦隆市中心提供的一切都很近。”
}否则{
return“在度假期间,步行到海滩,骑自行车到市区,到达你需要的任何地方。”
}
}
让我们描述1=wb1Selector+“”+sqFoot+“”平方英尺房产,带有“+卧室+”卧室和“+浴室+”浴室。“+海湾海滩(loc)+”+
步行距离(步行距离)
警报(说明1)
让wordBank1=['惊人的','不可思议的','美丽的','惊人的','不可思议的','壮丽的']
让wb1Selector=wordBank1[Math.floor(Math.rando