JS开发之console调试(定位自己的问题位置)(-)
记得8月多刚刚入职之后,那时的我可以说什么都不会,遇到任何问题就想找人去问。
但事实上,那些公司的大拿们承担着更重要的工作,所以,如果你真的不会,当然可以去问他们,但是,请你先准确定位到自己的问题所在。
说道定位自己的问题位置这一点,里面充斥着大量的优点:
1,很可能当你找到问题出现的位置时,发现这只是一个简单的低级错误,或格式或符号。
2,很可能当你找到问题出现的位置时,你只需要baidu就可以直接找到问题解决的方案,而不用去问别人,不但成长的多,而且提升自信有木有。
3,很可能当你找到问题出现的位置时,你在去问大拿们,他们只需要花少量时间就可以解决你的问题,这样遇到你的问题他们会原因欣然帮助。
更多的有点就不一一列举了。所以今天我就说说我在这几个月工作中,对调试中console的认识。
说道系统调试常用的有两种:alert() 和 console.log(),按照我浅薄的理解而言:
alert() 的特点:1,对程序有阻塞作用,不点击确定,后续代码无法继续执行。(也就是说,代码从弹出的那个alert()处暂停,除非你点击确定才会继续进行)
2,alert() 只能输出string类型,如果 alert 输出的是对象就会自动调用toString()方法。
3,alert() 不支持多个参数的写法,只能输出第一个值。
console.log() 的特点:1,在打印台输出。
2,可以打印任何类型的数据。
3,console.log() 支持多个参数的写法。
针对上述的三个特点,我这里依依给大家道来:
首先第一点,不论是alert() 还是 console.log() 我只解释一句,控制台就是审核元素,快捷键是F12。
其次对于第二点,请看下面的一段代码:
用浏览器打开之后,先看页面:
首先出现的是第一个alert() 的表现形式,
在第一个alert() 中,代码是 alert(1, 2, 3) 传入的是三个参数,但是最终输出的却只有第一个参数 1。
在这个状态下,如果不去点击确定,程序将阻塞在这里,不但不执行后续的代码,而且连控制台都无法打开。
接下来我们点击确定,出现了第二个 alert() 的表现形式,
此alert() 中,代码是 alert([1, 25, 54, 2, 2]) 而输出的时候,作为数组,两边的中括号已经被去掉,很明显对数组执行了toString() 方法,也就是只能输出string类型的数据。
接下来我们再来看一看控制台。
第一行 console.log() 代码中传入了三个参数,这里全部显示了出来。
第二行 console.log() 代码中输出了一个数组。
第三行 console.log() 代码中输出了一个对象。
第二行和第三行说明了 console.log() 可以输出任何类型的数据。
第四行 console.log() 代码中出现了一个新的方法 JSON.stringify() 。
这个JSON.stringify() 方法可以把传入其中JSON的数据,转换成string类型。
通过这个方法,我们也可以清晰的看到,console.log() 中输出的数据的格式不在是简单的 string 类型。
上面就是alert() 和 console.log() 的特点。
而他们使用上,我个人倾向大多数情况用 console.log() 和 JSON.stringify() 结合,因为这样可以更好的看到数据的真实面貌。
而对于alert() 方法我个人觉得目前有用的地方,是做手机端开发的时候,有时候真机调试的时候,打断点使用。
对了,还有后台代码中用 System.out.println() 代码,这样 tomcat 开启后就可以在里面打断点。
唉,本来打算写一边console的专题,因为自己主要用这个调试,可是现在发现,自己要说的却还没有说,那么这边就题目后面价格(-),我们明天接着说。
由于知识的匮乏,内容可能多有不足,希望大家指正。