Depuração de front-end 2

1. Depuração com cromo (node.js)

exemplo:

const fs = require('fs/promises');

(async function() {
    const fileContent = await fs.readFile('./package.json', {
        encoding: 'utf-8'
    });
    
    await fs.writeFile('./package2.json', fileContent);
})();

1. Primeiro execute o nó index.js:
2. Em seguida, inicie no modo de depuração, adicione um parâmetro --inspect-brk:
node --inspect-brk ./index.js
--inspect é iniciado no modo de depuração, --inspect-brk é iniciado no modo de depuração e quebra na primeira linha.
3. O servidor depurado é como mostrado na figura acima: a parte destacada em vermelho

Em seguida, depure o nodejs com o Chrome:

  1. Abra chrome://inspect/#devices , e todos os alvos que podem ser depurados estão listados abaixo, ou seja, o servidor ws:

O serviço de depuração de nó é executado na porta 9229 por padrão, mas também pode ser alterado

Basta adicionar sua porta à configuração:

  1. Clique em inspecionar para depurar

2. Depuração com VsCode (node.js)

1、

2、

3、

A primeira linha está quebrada, você pode adicionar uma configuração stopOnEntry:

4, você pode depurar

Três, nove tipos de escopo JS

  • Escopo global : escopo global, que é janela no ambiente do navegador e global no ambiente do nó

  • Escopo local : escopo local ou escopo de função

  • Escopo do script : variáveis ​​globais declaradas por let e const serão salvas no escopo do script, essas variáveis ​​podem ser acessadas diretamente, mas não podem ser acessadas através de window.xx

  • Escopo do módulo : Na verdade, estritamente falando, este também é um escopo de função, porque quando o nó o executa, ele envolverá uma camada de funções, que é um escopo de função especial, com variáveis ​​como módulo, exporta e requer

  • Escopo do Bloco Catch : O escopo da instrução catch tem acesso ao objeto de erro

  • With Block 作用域:with 语句会把传入的对象的值放到单独的作用域里,这样 with 语句里就可以直接访问了

  • Closure 作用域:函数返回函数的时候,会把用到的外部变量保存在 Closure 作用域里,这样再执行的时候该有的变量都有,这就是闭包。eval 的闭包比较特殊,会把所有变量都保存到 Closure 作用域

  • Eval 作用域:eval 代码声明的变量会保存在 Eval 作用域

Acho que você gosta

Origin blog.csdn.net/weixin_52993364/article/details/128918779
Recomendado
Clasificación