javascript中的debugger是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中的debugger是啥意思?相关的知识,希望对你有一定的参考价值。

在JS脚本中,有一个fn:

function a()
debugger;
if(...)...
else...;
;

不知道这个函数里面一开始的那个debuger有什么 ,有谁能解释一下, 我用的框架是Extjs,js脚本中有很多方法中都用到了debugger;,不知道这个是干啥的,有什么用?

谁能解释的清楚一点?

debugger是调试js的, 就像调试C#代码一样,仅限ie浏览器

需要设置2个地方
1: ie浏览器--工具--高级--浏览--禁用脚本调试(Internet Explorer) ,把钩去掉
2: 要安装Microsoft Visual Studio,作为调试工具
参考技术A 用来进行前台页面 js调试的,相当于c#的断点 参考技术B Debugger为一种调试软件,工程师或程序员可以用来验证算法。Debugger可以访问带以下命令的DSP硬件逻辑:(Start、stop、read/write、register、reset) Debugger支持C或者汇编调入算法及源代码。此外,程序和数据存储器,寄存器和其他相关目标均可看到。Debugger也可完成算法分析及把数据下载到目标板上本回答被提问者采纳

JavaScript 回调中的术语“通过”或“通过”是啥意思?

【中文标题】JavaScript 回调中的术语“通过”或“通过”是啥意思?【英文标题】:What does the term "pass" or "passing" something mean in JavaScript callbacks?JavaScript 回调中的术语“通过”或“通过”是什么意思? 【发布时间】:2019-01-25 09:48:07 【问题描述】:

目前正在学习 JavaScript 中回调的含义,我正在努力理解回调的工作原理以及传递 this 或传递 that 的术语以及它如何与回调一起工作?我有一些示例代码,我想展示一下并简要解释为什么我不明白。

var users = ["Sam", "Ellie", "Bryan"];

function addUser(username, chickenNugget) 
    setTimeout(function() 
      users.push(username);
      chickenNugget();
    , 200);


function getUsers() 
    setTimeout(function() 
      console.log(users);
    , 100);


addUser("Jake", getUsers);

getUsers();

调用 chickenNugget 时会发生什么?函数中的代码是否会在遇到 chickenNugget 时停止并重置,直到再次调用函数 addUser?

【问题讨论】:

“为什么参数 chickenNugget 被归类为回调” - 因为...它被 addUser 回调了? 添加了新信息 JS 中没有参数类型,所以chickenNugget 只是一个可以传递任何东西的参数(numberstringfunctionobject,...)也可以随意命名。 不清楚你在问什么。您是否尝试运行代码以查看它的作用?这些与标题有何关系? 所以我在看一个关于回调的教程,他使用了不同的术语,比如 this 传递给 this ,我想这是什么意思,他使用 setTimeout 允许回调从addUser 在 getUsers 之前,即使在回调未在 addUser 代码块中实现之前处理了 getUsers 【参考方案1】:

回调是 Javascript 中处理异步的一种方式。有时您有使用 setTimeout 之类的异步函数,但您需要等待这些异步函数完成,然后才能继续运行更多代码(这取决于异步请求),而回调是实现此目的的一种方式。我已经更新了您的示例以说明我上面的意思,希望对您有所帮助:

var users = ["Sam", "Ellie", "Bryan"];

function addUser(username, callback) 
    setTimeout(function() 
      users.push(username);
      // this will be called only after username has been added to users
      callback();
    , 200);


function isJakeInUsers() 
  if (users.includes("Jake")) 
    console.log("Jake is in users! :)");
   else 
    console.log("Jake is not in users! :(");
  


// as a callback, isJakeInUsers will only be called after "Jake" has been added to users
addUser("Jake", isJakeInUsers);

// this gets called immediately, before "Jake" has been added to users
isJakeInUsers();

【讨论】:

【参考方案2】:

回调只不过是传递给以后使用的指令。回调是 javascript 的基础,因为它是一种异步语言。这意味着如果一个操作需要外部服务,它将执行下一个命令,而无需等待该操作完成。

这是一个同步执行的代码示例

var total_in_cart = 0;
var shipping = 0;
var total = 0;

total_in_cart = 100; // USD
shipping = 10;
total = total_in_cart + shipping;
console.log(total);

这将输出 110,因为它会等待每一行完成执行,然后再执行下一行。

下面是一个异步执行代码的例子

var total_in_cart = 0;
var shipping = 0;
var total = 0;

total_in_cart = 100; // USD
shipping = get_shipping_fee_from_dhl_api();
total = total_in_cart + shipping;
console.log(total);

这将输出 100,因为 JS 没有等待 api 调用完成并继续执行新行。为了解决这个问题,您必须发送进一步的指令,以便在 api 请求完成后回调,因此使用回调这个词。

因此,在这种情况下,您必须将所有计算封装到可以作为回调可执行文件发送的代码中。在 JS 中,您将使用一个函数并将其分配给一个变量,然后您将其传递给将接受它并执行它的函数。

请记住

function getUsers() 

是一样的

var getUsers = function() ;

【讨论】:

以上是关于javascript中的debugger是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 中的“”是啥意思? [关闭]

是啥? JavaScript 中的语法是啥意思?

Javascript 中的 !function 是啥意思? [复制]

JavaScript 中的“=>”是啥意思? [复制]

Javascript中的绑定是啥意思?

JavaScript 回调中的术语“通过”或“通过”是啥意思?