百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

前端代码如何调试?

bigegpt 2024-09-16 12:25 6 浏览

前端代码的调试即javaScript调试,调试方法有很多,不同的开发者有不同的调试方式。这里介绍几种从入门到入坑的调试方法。

最简单调试方法:打印日志

打印日志不仅仅是前端代码的调试方法,它几乎是大部分开发语言的入门级调试方法。很多开发者在新手阶段都会采用这一方式,将变量值等信息打印出来。

javaScript输出日志主要方法是console对象。console对象有很多个方法,例如console.assert、console.clear、console.count等方法,其中与日志输出有关的方法有:

console打印日志

打印日志的调试方法超级简单,只需要在需要查看信息的代码行调用上面的方法即可输出想要的信息。上述4个方法均可将对象打印出来,例如:

console例子

如果使用的是Chrome浏览器,右键页面=>检查,在console中即可看到相应的输出:

代码中插入debugger

javascript提供了一个关键字:debugger这个关键字厉害了,可以调用任何可用的调试功能,设置断点。但是,如果没有调试功能可用,此语句将不起作用。

下面是一个包debugger语句的html代码,当代码被执行时,会尝试调用一个可用的调试器进行调试。

debugger代码

保存该文件,使用Chrome浏览器将其打开。打开Chrome developer tool, 即右键页面=>检查,发现没啥呀,只有下面这个页面:

此时我们刷新页面,dang~dang~,变这样了:

看到图中标红的地方了吗?那就是我们设置的断点,程序运行到那里停止了。此时我们将鼠标移至变量a上,即可看到a的值。

下图中红圈内数字也可以设置断点。

编辑器中调试

c++、Java、c#等语言都能在编辑器中进行调试、打断点,主要原因是它们都可以在编辑器中运行,而Web前端代码只能运行在浏览器中。

webstorm

webstorm可以在编辑器中进行调试、打断点,十分方便。但是,webstorm运行时占用资源比较多,对于性能比较低的电脑,webstorm运行的不是很流畅。

webstorm的调试方法可以在官网中找到。

Sublime Text

Sublime Text是一个比较轻量的脚本编辑器,运行比较流畅,很多前端开发者都喜欢使用。

Sublime Text有几个可以实现调试的Package,但是试用了一下,没有成功

Visual Studio Code

Visual Studio Code具有Sublime Text轻量,同时也能实现调试,简直要抛弃Sublime Text投靠Visual Studio Code的怀抱了??

1、安装Debugger for Chrome插件

安装最新版的Visual Studio Code后,打开它,点击左侧扩展图标

在“在商店中搜索扩展”中输入“Debugger for Chrome”,安装Debugger for Chrome即可

安装成功后,先新建文件夹test/src,在其中新建index.html和index.js两个文件

index.html

index.js

首先在index.js中打一个断点。点击图中红框区域即可添加断点,也可将鼠标放在红框区域右键添加、删除断点

选中test文件夹,按快捷键F5,或者点击调试->启动调试,选择Chrome。Visual Studio Code会自动在test文件夹下创建.vscode/launch.json文件。修改launch.json文件,修改或增加途中红线标识的行。

然后再次按F5或启动调试,此时Chrome会自动打开index.html,刷新页面,即可发现Visual Studio Code在刚才我们添加的断点出阻塞了

移动端网页调试

移动端主要分Android和iOS,Windows Phone就暂时不考虑了,2017年销售的智能手机,99.9%的搭载了这两个操作系统。

Android端调试

Android手机调试首先需要开启开发者模式,其次,如果是调试浏览器则需要安装Chrome浏览器,若是调试其他APP则需要APP开发者打开调试的开关。

完成上述步骤后,打开网页,使用usb线链接电脑,允许电脑调试手机。在PC端Chrome浏览器地址栏输入chrome://inspect

iOS端调试网页

macOS操作系统调试iOS网页比较简单,只需iPhone设置->Safari->高级->打开Web检查器开关,打开网页,iPhone通过数据线连接Mac电脑,打开Mac端Safari,点击开发->[你的手机]->选择调试的网页

也可以使用iPhone模拟器调试,前提需要安装Xcode。上图正是模拟器调试。

Windows操作系统要调试iOS端网页,则需要通过Chrome调试,并安装一些工具便可以调试Safari了

最强大的调试方法

使用浏览器自带的调试工具,可以说是最常用,也是最强大的调试方法。不仅可以调试自己开发的网页,也可以hack其他网页,从别人那里学习一些前端知识。

Chrome浏览器的调试功能比较强大,其拥有很多功能,不仅可以查看、整理代码,还可以检查网页的性能、动画等等

chrome调试工具

Firefox浏览器调试功能也同样强大,完全媲美Chrome。最新版的Firefox在性能上有了很大的提升,渲染网页的速度赶超Chrome,资源占用却没有Chrome高。

Firefox调试工具

国产浏览器中,如搜狗浏览器、UC浏览器等都支持调试,部分内核使用了Chromium,也就是Chrome内核,调试功能和Chrome差不多,可能有版本延迟,缺少部分新功能。

相关推荐

最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)

前言作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上...

Redis数据库从入门到精通(redis数据库设计)

目录一、常见的非关系型数据库NOSQL分类二、了解Redis三、Redis的单节点安装教程四、Redis的常用命令1、Help帮助命令2、SET命令3、过期命令4、查找键命令5、操作键命令6、GET命...

netcore 急速接入第三方登录,不看后悔

新年新气象,趁着新年的喜庆,肝了十来天,终于发了第一版,希望大家喜欢。如果有不喜欢看文字的童鞋,可以直接看下面的地址体验一下:https://oauthlogin.net/前言此次带来得这个小项目是...

精选 30 个 C++ 面试题(含解析)(c++面试题和答案汇总)

大家好,我是柠檬哥,专注编程知识分享。欢迎关注@程序员柠檬橙,编程路上不迷路,私信发送以下关键字获取编程资源:发送1024打包下载10个G编程资源学习资料发送001获取阿里大神LeetCode...

Oracle 12c系列(一)|多租户容器数据库

作者杨禹航出品沃趣技术Oracle12.1发布至今已有多年,但国内Oracle12C的用户并不多,随着12.2在去年的发布,选择安装Oracle12c的客户量明显增加,在接下来的几年中,Or...

flutter系列之:UI layout简介(flutter-ui-nice)

简介对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。在flutter中,基本上所有的对象都是wi...

Flutter 分页功能表格控件(flutter 列表)

老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来。PaginatedDataTablePaginatedDataTable是一个带分页功能的DataTable,...

Flutter | 使用BottomNavigationBar快速构建底部导航

平时我们在使用app时经常会看到底部导航栏,而在flutter中它的实现也较为简单.需要用到的组件:BottomNavigationBar导航栏的主体BottomNavigationBarI...

Android中的数据库和本地存储在Flutter中是怎样实现的

如何使用SharedPreferences?在Android中,你可以使用SharedPreferencesAPI来存储少量的键值对。在Flutter中,使用Shared_Pref...

Flet,一个Flutter应用的实用Python库!

▼Flet:用Python轻松构建跨平台应用!在纷繁复杂的Python框架中,Flet宛如一缕清风,为开发者带来极致的跨平台应用开发体验。它用最简单的Python代码,帮你实现移动端、桌面端...

flutter系列之:做一个图像滤镜(flutter photo)

简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起...

flutter软件开发笔记20-flutter web开发

flutterweb开发优势比较多,采用统一的语言,就能开发不同类型的软件,在web开发中,特别是后台式软件中,相比传统的html5开发,更高效,有点像c++编程的方式,把web设计出来了。一...

Flutter实战-请求封装(五)之设置抓包Proxy

用了两年的flutter,有了一些心得,不虚头巴脑,只求实战有用,以供学习或使用flutter的小伙伴参考,学习尚浅,如有不正确的地方还望各路大神指正,以免误人子弟,在此拜谢~(原创不易,转发请标注来...

为什么不在 Flutter 中使用全局变量来管理状态

我相信没有人用全局变量来管理Flutter应用程序的状态。毫无疑问,我们的Flutter应用程序需要状态管理包或Flutter的基本小部件(例如InheritedWidget或St...

Flutter 攻略(Dart基本数据类型,变量 整理 2)

代码运行从main方法开始voidmain(){print("hellodart");}变量与常量var声明变量未初始化变量为nullvarc;//未初始化print(c)...