2015-09-03 265 views
1

此代码应该工作。为什么不呢?为什么JavaScript这个简单的.html文件不起作用?

<!DOCTYPE html> 
<body> 

<h1> The "^" operator in Javascript </h1> 

<p id = "foo"></p> 

<script> 

function f(){ 
//vars 
var a = 5; 
var b = 13; 
var c = a^b; 
var binA = a.toString(2); 
var binB = b.toString(2); 
var binC = c.toString(2); 
var strA = a.toString(); 
var strB = b.toString(); 
var strC = c.toString(); 

//make output string 
var lineA = "a = " + strA + " = " binA + ", "; 
var lineB = "b = " + strB + " = " binB + ", "; 
var lineC = "c = " + strC + " = " binC + ", "; 
var outputStr = lineA + lineB + lineC; 

//output 
document.getElementById("foo").innerHTML = outputStr; 

} 

f(); 

// For some reason this shows the contents of the header only 

</script> 
</body> 

我做了toString()上的a,b和c的转换,因为我无法理解为什么输出未能在谷歌浏览器显示。我承认他们不应该是必要的。但我希望尽可能使代码更洁净。我将字符串连接为子字符串,因为在此代码的前一次迭代中,注释字符串连接的“C”部分允许显示输出字符串的“A”和“B”相关部分。另外它保持了我试图用来错误检查的常规视觉格式。

+0

你要是能知道如何使用的jsfiddle的** JS提示**功能!!!!好可惜! –

+0

你有链接吗? –

+0

jsfiddle.com !! –

回答

0

有一个语法错误,你错过了 '+' 当我固定在FF的错误和铬

a = 5 = 101, b = 13 = 1101, c = 8 = 1000, 
+0

非常感谢,伙计们。这工作。 –

+0

我该如何声明这个问题'已回答'? –

+0

@DanielWinterbottom:问题主体左侧有“检查”标记!点击那个会变成绿色,然后答案将被标记为“已接受” –

0
前binA中,binB和BINC

var lineA = "a = " + strA + " = " + binA + ", "; 
var lineB = "b = " + strB + " = " + binB + ", "; 
var lineC = "c = " + strC + " = " + binC + ", "; 
var outputStr = lineA + lineB + lineC; 


输出打印如下

这是因为您在第24,25和26行的binA,binBbinC之前缺少+标记:)您有一些无效的javascript,并且它会抛出一个e在控制台中的错误。

0

您在javascript中发生语法错误。用

替换您的输出字符串块
//make output string 
var lineA = "a = " + strA + " = "+ binA + ", "; 
var lineB = "b = " + strB + " = "+ binB + ", "; 
var lineC = "c = " + strC + " = "+ binC + ", "; 
var outputStr = lineA + lineB + lineC; 

它将适用于您。由于

2

更新的代码,你已经错过了 '+'

See this fiddle

var lineA = "a = " + strA + " = " + binA + ", "; 
var lineB = "b = " + strB + " = " + binB + ", "; 
var lineC = "c = " + strC + " = " + binC + ", "; 
var outputStr = lineA + lineB + lineC; 
相关问题