日期:2014-05-16  浏览次数:20655 次

NULL为空或不是对象
我是一菜鸟,刚学习javaScript,下面是一段书上的代码,我调试不通,想知道什么原因:错误的提示是:
行:16
字符:4
代码:0
错误: '_console '   为空或不是对象
网址:http://localhost/javascript/test2.asp

而我已经将_console赋值为null了,注释掉的代码运行后显示的是object,对于上面错误的提示感到很郁闷。
我是新手,看的书籍是扫描上去的PDF,很不清楚。下面的onclick= "debug( "你已经点击我:\t "+ '++n '+ "次 "); "代码也报了错误,我实在搞不清什么时候用双引号,什么时候用单引号,他们互相嵌套有什么规则没有,就知道要成对使用,字符串加双引号,还有连接字符串,有哪个高人指点一下它们的使用原则。
还有就是学习javaScript,感觉调试真的好累,有没有高手指点一个好的调试器。
小弟在此谢过大侠!

代码如下:
<Script>
var   _console=null;
//window.document.write(typeof(_console));
function   debug(msg)
{
if((_console==null)||(_console.closed))
      {
      _console=window.open( " ", "console ", "width=600,height=300,resizable ");
      _console.document.open( "text/plain ");
      }
}
      _console.focus();
      _console.document.writeln(msg);
</Script>

<body>
<form>
<input   type= "button "   value= "点击我 "   onclick= "debug( "你已经点击我:\t "+ '++n '+ "次 "); ">
</form>
</body>

------解决方案--------------------
在 Javascript 中数据类型 null 只有一个值:null。关键字 null 不能用作函数或变量的名称。

包含 null 的变量包含“无值”或“无对象”。换句话说,该变量没有保存有效的数、字符串、Boolean、数组或对象。可以通过给一个变量赋 null 值来清除变量的内容。

请注意,在 Javascript 中,null 与 0 不相等(与在 C 和 C++ 中不同)。同时应该指出的是,Javascript中 typeof 运算符将报告 null 值为 Object 类型,而非类型 null。这点潜在的混淆是为了向下兼容。

双引号内部包含双引号的时候,双引号改用单引号或者使用转义字符\ "

以上报告: '_console ' 为空或不是对象,这是因为javascript中_console.focus();
_console.document.writeln(msg);不在函数debug(msg)中,浏览器会先执行这两句,你应该将其放到函数中。象这样:

<Script>
var _console=null;
var n=1;
//window.document.write(typeof(_console));
function debug(msg)
{
if((_console==null)||(_console.closed))
{
_console=window.open( " ", "console ", "width=600,height=300,resizable ");
_console.document.open( "text/html ");
_console.focus();
_console.document.write(msg);
}
n++;
}

</Script>

<body>
<form>
<input type= "button " value= "点击我 " onclick= "debug( '你已经点击我:\t '+n+ '次 '); ">
</form>
</body>


调试javascript我喜欢用firefox浏览器。