2014-09-27 92 views
-3

下面是我的JS文件中的代码:JS文件不起作用

function arrayContains(array, value){ 
    return array.indexOf(value) > -1; 
} 
var possibleOptions = ["male", "female", "m", "f"]; 
var gender = prompt("What's your gender?",""); 
while(!arrayContains(possibleOptions, gender)) 
    gender = prompt("Invalid input. What's your gender?"); 
var name = prompt("What's your name?",""); 
var greeting = (gender == "male" || gender == "m") ? "Sup dude." : "Sup girl."; 
alert("Hello, " + name + "! " + greeting); 

的错误,我得到:

Line: 5 
char: 1 
Object expected. 

我无法弄清楚。

+0

在'''之前加''''。我认为'''是你的问题 – 2014-09-27 10:49:50

+1

['your code'](http://jsfiddle.net/6c1qbq5t/)运行良好 – mithunsatheesh 2014-09-27 10:51:32

+0

该代码无误地运行:http://jsfiddle.net/cscr3bvu/ – Quentin 2014-09-27 10:52:12

回答

1

两个问题:

  1. 正如评论所说,W /使用cscript.exe脚本主机不支持,也不提示(),也没有警报()
  2. JScript中数组没有.IndexOf()方法

你必须推出自己的:

function arrayContains(array, value){ 
    for (var i = 0, e = array.length; i < e; ++i) { 
     if (array[i] === value) { 
      return true; 
     } 
    } 
    return false; 
} 

function prompt(p) { 
    WScript.Stdout.Write(p + " > "); 
    return WScript.StdIn.ReadLine(); 
} 

function alert(s) { 
    WScript.Echo(s); 
} 

var possibleOptions = ["male", "female", "m", "f"]; 
var gender = prompt("What's your gender?",""); 
while(!arrayContains(possibleOptions, gender)) 
    gender = prompt("Invalid input. What's your gender?"); 
var name = prompt("What's your name?",""); 
var greeting = (gender == "male" || gender == "m") ? "Sup dude." : "Sup girl."; 
alert("Hello, " + name + "! " + greeting); 

输出(控制台):

cscript 26073853.js 
What's your gender? > neuter 
Invalid input. What's your gender? > male 
What's your name? > tarzan 
Hello, tarzan! Sup dude. 

cscript 26073853.js 
What's your gender? > female 
What's your name? > jane 
Hello, jane! Sup girl.