![]() | 1 qqblog 2014-11-02 15:31:29 +08:00 webkit内核的浏览器都有Inspector,可断点调试Javascript |
![]() | 2 xcatliu 2014-11-02 15:32:32 +08:00 一般就用 chrome 的 develop tools 吧,可以设置断点看变量值是什么。 涉及 ajax 的看看 network。 |
![]() | 3 puras 2014-11-02 15:40:36 +08:00 调JS一直用FireFox中的FireBug,可以断点调试,也可以直接使用console.log打印变量。。。 还可查看好多东西,如LS所说的Network等 |
![]() | 4 arslion 2014-11-02 15:44:32 +08:00 我比较粗暴, 直接console.log哈哈 |
![]() | 5 NemoAlex 2014-11-02 15:55:49 +08:00 alert 出来是 undefined,就是 undefined 咯 |
![]() | 6 ibigbug 2014-11-02 16:17:10 +08:00 看 network 如果嫌 alert 麻烦的话直接用 chrome 在 source 里面打断点 |
![]() | 7 lincanbin 2014-11-02 16:46:08 +08:00 ajax的回调里是一个匿名函数,表面看起来你这个回调函数可能包在另一个函数里,但是实际上是异步执行,已经是另一个函数了,这个回调里能使用的变量,只有全局变量。 直接在回调函数里调用包着Ajax的那个函数里的变量是最常见的Javascript作用域错误。 |
![]() | 8 cdxem713 2014-11-02 18:57:37 +08:00 @lincanbin 不对吧,根据js的闭包,在回调函数里面肯定是能够用外部的局部变量的。 例如一般用ajax不都这么用么? function getSomething() { var ajax = new XmlHttpRequest(); ajax.open("get",url,true); ajax.Onreadystatechange= function() { if (ajax.readyState== 4) { if (ajax.status == 200) { ........... } } }; ajax.send(null) } |
![]() | 9 cdxem713 2014-11-02 19:00:16 +08:00 @lincanbin 唯一会出现问题的只有settimeout和setinterval,这两个的回调函数的外部应该是全局那个域。 具体的没有描述清楚,可以写个东西试试。 |
10 zhouzm 2014-11-02 20:16:17 +08:00 变量定义全加上 var ,基本上大部分变量作用域的问题就清除了,剩下的再利用 develop tools 断点调试吧 |
![]() | 11 domino 2014-11-02 22:14:29 +08:00 chrome console |
![]() | 12 shuson 2014-11-03 09:18:20 +08:00 除了source里断点和network直接找request,response,还有其他好办法么? 不喜欢console.log打乱代码 |
13 zhhc 2014-11-03 10:40:30 +08:00 chrome 的console,network,beakpoints |
![]() | 14 jprovim 2014-11-03 14:16:01 +08:00 chrome做, 直接console.log. 其debug不如花去理解下Javascript面的closure. |