好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

调试方案

调试方案

程序调试是将编制的程序投入实际运行前,用手工或编译程序等 方法 进行测试,修正语法 错误 和逻辑 错误 的过程。

调试就是验证程序的正确性或自我猜想的过程,掌握一定的调试技巧,可以观察程序执行中的情况、 快速 定位 BUG 等。

前端开发者最常用、有效的调试方式就是使用浏览器内置的 开发者工具 。

1. 开发者工具

Chrome 开发者工具是一套内置于 Google Chrome 中 的 Web 开发和调试工具,可用来对网站进行迭代、调试和分析。

开发者工具内置在 Chrome 浏览器中。

如果还未安装 Chrome 浏览器,可以 点击这里 获取 。

以下方式可以打开开发者工具:

在 Chrome 菜单 中选择: 更多工具 > 开发者工具 在 页面 中任意位置上右键点击,在 菜单 中选择 “检查” Windows 下使用快捷键 Ctrl+Shift+I ,Mac下使用快捷键 Option + Command + I

控制台界面

章节中主要会使用到 Console面板 (上图中第二个高亮的选项)来查看 输出 的日志等,结合日志来进行分析调试。

2. console 对象

console对象 连接了 用户 与开发者工具中的 Console面板 ,使用 console对象 可以 输出 内容 至 Console面板 ,主要用于 输出 日志,便于调试。

console对象 通常要结合 Console面板 来使用,通常也会称呼其为 控制台 ,为了防止 Console对象 与 Console 面板在称呼上的混乱,之后都会称其为 控制台 。

例如想在控制台中 输出 JavaScript ,输入以下 内容 到控制台的光标处并回车即可。

 console .  log  (  'JavaScript'  )  ; 
 

可以尝试着 修改 单引号内的 内容 ,会有不同的结果。

以上就是最简单的一句 JavaScript 代码 ,意思就是 调用 Console 对象下的 log 方法 ,并传递字符串 JavaScript 给 log 方法 。

代码 末尾还可以见到 一个 分号,在 JavaScript 中分号用来表示一行 代码 的结束。但是也可以不加分号,大多数情况下用换行符也可以作为一行 代码 结束的标志。

这里不需要理解是什么意思,只需要知道这样可以往控制台 输出 内容 。

3. 将 JavaScript 写在 HTML 中

学习过 HTML 的读者知道,浏览器可以直接打开 HTML 文件 。

我们可以使用 <script></script> 标签 包裹 JavaScript 代码 ,然后使用浏览器打开,就可以让 JavaScript 代码 通过 HTML 运行在浏览器中。

同样的,想在控制台 输出 一段 内容 ,就可以先新建 一个 ,或者在已有的 一个 HTML 文件 中加入 script 标签 ,然后在 标签 中书写 JavaScript 代码 。

  <!DOCTYPE html> 
   < html  >  
   < head  >  
     <  Meta    charset   =  " UTF-8 "   >  
   </ head  >  
   < body  >  
     < p  >  我是 一个 段落   </ p  >  

     < script  >   
    console .  log  (  'JavaScript'  )  ; 
      </ script  >  
   </ body  >  
   </ html  >  
 

@H_673_ 301 @

使用浏览器打开 HTML 文件 就可以观察到控制台有 输出 的 内容 ,被 script 标签 包裹的 代码 会被浏览器 自动 执行。

注意 :章节中的 内容 如果没有使用到 HTML, 默 认就是将 JavaScript 代码 书写在 script 标签 中,防止不必要的 代码 增加 篇幅

4. 通过操作 DOM 进行调试

DOM 可以先简单地理解成浏览器将 HTML 解析后构建的一颗树,树上的每 一个 节点就是 一个 DOM 节点。

注意:有的时候可以听到 HTML上的 一个 标签 就是 一个 DOM节点 这样的概念,其实这是 错误 的,HTML 只是一段有格式的文本,浏览器解析后才会变成一颗 DOM 树。

通过操作 DOM,也可以达到调试的 效果 。

例如想 要做 个简单的抽奖程序,就可以使用以下 代码 :

  <!DOCTYPE html> 
   < html   lang   =  " en "   >  
   < head  >  
     <  Meta    charset   =  " UTF-8 "   >  
     <  Meta    name   =  " viewport "    content   =  " width=device-width, initial-scale=1.0 "   >  
     < title  >  包中抽奖   </ title  >  
     < style  >   
      .start    { 
       border  :  px solid  #4caf50  ; 
       background  :  transparent ; 
       font-size  :  px ; 
       padding  :  px px ; 
       color  :   #4caf50  ; 
       outline  :  none ; 
       border-radius  :  px ; 
       cursor  :  pointer ; 
     } 

      .start  :active    { 
       background  :   #4caf50  ; 
       color  :  white ; 
     } 

      .l ott ery    { 
       font-size  :  px ; 
       color  :  red ; 
     } 

      .prize    { 
       color  :  red ; 
       font-size  :  px ; 
     } 
      </ style  >  
   </ head  >  
   < body  >  
     < div  >  
       < button   class   =  " start "   >  戳我抽奖!   </ button  >  
     </ div  >  
     < div   class   =  " result "   >  
     </ div  >  
     < script  >   
     var  prizeList  =   [  '5年高考3年模拟'  ,   '加班一天'  ,   '快乐水一罐'  ]  ; 

     var  startBtn  =  document .  querySelector  (  '.start'  )  ; 
     var  resultEle  =  document .  querySelector  (  '.result'  )  ; 

    startBtn .  addEventListener  (  'click'  ,   function  (  )   { 
       var  prize  =  Math .  floor  ( Math .  random  (  )   *    +   )  ; 

       var  text  =   [ 
       '恭喜!抽到了 '  , 
       '<span class="l ott ery">'  , 
      prize , 
       '</span>'  , 
       ' 等奖!奖品是 '  , 
       '<span class="prize">'  , 
      prizeList [ prize  -   ]  , 
       '</span>'  , 
       '!'  , 
       ]  .  join  (  ''  )  ; 

      resultEle . innerHTML  =  text ; 
     }  )  ; 
      </ script  >  
   </ body  >  
   </ html  >  
 

@H_673_ 301 @

使用浏览器打开,点击按钮后就会展示对应的结果。

可以先不关心上述 代码 具体的细节,只需要先了解这种方式可以将 内容 输出 到浏览器中,也可以进行调试。

5. 小结

结合开发者工具进行调试是必备技能,调试的技巧也非常多样化,除了上述的几种,常用的还有 断点调试 ,部分特殊情况下还会利用 alert (一种会阻塞浏览器进程的对话框)进行调试。

不同的人使用的调试技巧也不同,有了一定的编码经验后就会找到适合自己的调试技巧,对语言本身有足够的调节,才能让自己的调试技巧更加完善。

6. 扩展

简单的过一遍 Chrome 官方的 开发者工具文档 ,了解开发者工具提供了哪些 功能 。

JavaScript 变量 ? ?学习环境准备

查看更多关于调试方案的详细内容...

  阅读:59次

上一篇

下一篇

第1节:什么是 JavaScript    第2节:学习环境准备    第3节:调试方案    第4节:JavaScript 变量    第5节:JavaScript 数据类型    第6节:JavaScript if 语句    第7节:for 语句    第8节:JavaScript 算数运算符    第9节:JavaScript 比较运算符    第10节:JavaScript 逻辑运算符    第11节:JavaScript 函数    第12节:JavaScript 表达式    第13节:JavaScript 对象    第14节:JavaScript 字符串    第15节:JavaScript 数字    第16节:JavaScript 数组    第17节:JavaScript switch 语句    第18节:JavaScript while 语句    第19节:JavaScript 的 break 与 continue    第20节:JavaScript with    第21节:document.cookie    第22节:JavaScript Function    第23节:JavaScript Math    第24节:JavaScript Date    第25节:JavaScript RegExp    第26节:JavaScript JSON    第27节:什么是 DOM    第28节:DOM 和 JavaScript 的关系    第29节:获取和操作 DOM 节点    第30节:DOM 与事件    第31节:DOM 事件绑定    第32节:DOM 事件对象    第33节:DOM 事件流    第34节:事件相关的优化    第35节:自定义事件    第36节:表单校验    第37节:什么是 BOM    第38节:常用的 BOM 相关对象    第39节:BOM 常用属性和方法    第40节:AJAX    第41节:异常处理    第42节:三元运算符    第43节:逗号操作符    第44节:void    第45节:typeof    第46节:delete 操作符    第47节:debugger    第48节:getter & setter    第49节:new 运算符与构造函数    第50节:JavaScript 原型    第51节:JavaScript instanceof    第52节:JavaScript this    第53节:严格模式    第54节:作用域    第55节:闭包    第56节:变量提升    第57节:对象包装器    第58节:Lodash    第59节:moment    第60节:swiper    第61节:ECMAScript 6    第62节:Node.js    第63节:Babel    第64节:CSS 预处理器    第65节:代码规范    第66节:TypeScript    第67节:WebComponents    第68节:Vue、React、Angular    第69节:小程序    第70节:JavaScript 关键字    第71节:分号导致的问题    第72节:对象属性访问问题    第73节:this 使用问题    第74节:浮点数精度问题    第75节:独一无二的 NaN    第76节:避免全局污染    第77节:控制台观察对象问题    第78节:根据环境选择语言特性    第79节:相关资源