Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Debug a JavaScript or TypeScript app — Visual Studio (Windows)

  • Π‘Ρ‚Π°Ρ‚ΡŒΡ
  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 12Β ΠΌΠΈΠ½

Applies to: Visual Studio Visual Studio for Mac Visual Studio Code

You can debug JavaScript and TypeScript code using Visual Studio. You can hit breakpoints, attach the debugger, inspect variables, view the call stack, and use other debugging features.

Tip

If you haven’t already installed Visual Studio, go to the Visual Studio downloads page to install it for free. Depending on the type of app development you’re doing, you may need to install the Node.js development workload with Visual Studio.

Debug server-side script

  1. With your project open in Visual Studio, open a server-side JavaScript file (such as server.js), click in the gutter to set a breakpoint:

    Breakpoints are the most basic and essential feature of reliable debugging. A breakpoint indicates where Visual Studio should suspend your running code, so you can look at the values of variables or the behavior of memory, or whether or not a branch of code is getting run.

  2. To run your app, press F5 (Debug > Start Debugging).

    The debugger pauses at the breakpoint you set (IDE highlights the statement in the yellow background). Now, you can inspect your app state by hovering over variables currently in scope, using debugger windows like the

    Locals and Watch windows.

  3. Press F5 to continue the app.

  4. If you want to use the Chrome Developer Tools, press F12 in the Chrome browser. Using these tools, you can examine the DOM or interact with the app using the JavaScript Console.

Debug client-side script

Visual Studio provides client-side debugging support only for Chrome and Microsoft Edge (Chromium). In some scenarios, the debugger automatically hits breakpoints in JavaScript and TypeScript codes and embedded scripts on HTML files. For debugging client-side script in ASP.NET apps, see the blog post Debug JavaScript in Microsoft Edge and this post for Google Chrome. For debugging TypeScript in ASP.NET Core, see Create an ASP.NET Core app with TypeScript.

Note

For ASP.NET and ASP.NET Core, debugging embedded scripts in .CSHTML files is not supported. JavaScript code must be in separate files to enable debugging.

For applications other than ASP.NET, follow the steps described here.

Prepare your app for debugging

If your source is minified or created by a transpiler like a TypeScript or Babel, use source maps for the best debugging experience. You can even attach the debugger to a running client-side script without the source maps. However, you may only be able to set and hit breakpoints in the minified or transpiled file, not in the source file. For example, in a Vue.js app, the minified script gets passed as a string to an eval statement, and there’s no way to step through this code effectively using the Visual Studio debugger unless you use source maps. Use Chrome Developer Tools or F12 Tools for Microsoft Edge for complex debugging scenarios.

For help with generating source maps, see Generate source maps for debugging.

Prepare the browser for debugging

For this scenario, use either Microsoft Edge (Chromium) or Chrome.

  1. Close all windows for the target browser.

    Other browser instances can prevent the browser from opening with debugging enabled. (Browser extensions may be running and intercept full debug mode, so you may need to open Task Manager to find and close unexpected instances of Chrome.

    )

    For best results, shut down all instances of Chrome, even if you’re working with Microsoft Edge (Chromium). Both the browsers use the same chromium code base.

  2. Start your browser with debugging enabled.

    Starting in Visual Studio 2019, you can set the --remote-debugging-port=9222 flag at browser launch by selecting Browse With…

    > from the Debug toolbar, then choose Add, and then set the flag in the Arguments field. Use a different friendly name for the browser, like Edge with Debugging or Chrome with Debugging. For details, see the Release Notes.

    Alternatively, open the Run command from the Windows Start button (right-click and choose Run), and enter the following command:

    msedge --remote-debugging-port=9222

    or,

    chrome.exe --remote-debugging-port=9222

    This starts your browser with debugging enabled.

    The app isn’t yet running, so you get an empty browser page.

Attach the debugger to client-side script

To attach the debugger from Visual Studio and hit breakpoints in the client-side code, it needs help with identifying the correct process. Here’s one way to enable it.

  1. Switch to Visual Studio and then set a breakpoint in your source code, which might be a JavaScript file, TypeScript file, or a JSX file. (Set the breakpoint in a line of code that allows breakpoints, such as a return statement or a var declaration.)

    To find the specific code in a transpiled file, use Ctrl+F (Edit > Find and Replace

    > Quick Find).

    For client-side code, to hit a breakpoint in a TypeScript file, .vue, or JSX file typically requires the use of source maps. A source map must be configured correctly to support debugging in Visual Studio.

  2. Select your target browser as the debug target in Visual Studio, then press Ctrl+F5 (Debug > Start Without Debugging) to run the app in the browser.

    If you created a browser configuration with a friendly name, choose that as your debug target. The app opens in a new browser tab.

  3. Choose Debug > Attach to Process.

    Tip

    Starting in Visual Studio 2017, after you attach to the process the first time by following these steps, you can quickly reattach to the same process by choosing Debug > Reattach to Process.

  4. In the Attach to Process dialog, get a filtered list of browser instances that you can attach to. Choose the correct debugger for your target browser, JavaScript (Chrome) or JavaScript (Microsoft Edge — Chromium) in the

    Attach to field, type chrome or edge in the filter box to filter the search results.

  5. Select the browser process with the correct host port (localhost in this example), and select Attach.

    The port (for example, 1337) may also appear in the Title field to help you select the correct browser instance.

    The following example shows how this looks for the Microsoft Edge (Chromium) browser.

    Tip

    If the debugger does not attach and you see the message «Failed to launch debug adapter» or «Unable to attach to the process. An operation is not legal in the current state.», use the Windows Task Manager to close all instances of the target browser before starting the browser in debugging mode. Browser extensions may be running and preventing full debug mode.

  6. The code with the breakpoint may have already been executed, refresh your browser page. If necessary, take action to cause the code with the breakpoint to execute.

    While paused in the debugger, you can examine your app state by hovering over variables and using debugger windows. You can advance the debugger by stepping through code (

    F5, F10, and F11). For more information on basic debugging features, see First look at the debugger.

    You may hit the breakpoint in either a transpiled .js file or source file, depending on your app type, which steps you followed previously, and other factors such as your browser state. Either way, you can step through code and examine variables.

    • If you need to break into code in a TypeScript, JSX, or .vue source file and are unable to do it, make sure that your environment is set up correctly, as described in the Troubleshooting section.

    • If you need to break into code in a transpiled JavaScript file (for example,

      app-bundle.js) and are unable to do it, remove the source map file, filename.js.map.

Troubleshooting breakpoints and source maps

If you need to break into code in a TypeScript or JSX source file and are unable to do it, use Attach to Process as described in the previous section to attach the debugger. Make sure that your environment is set up correctly:

  • Close all browser instances, including Chrome extensions (using the Task Manager), so that you can run the browser in debug mode.

  • Make sure you start the browser in debug mode.

  • Make sure that your source map file includes the correct relative path to your source file and that it doesn’t include unsupported prefixes such as

    webpack:///, which prevents the Visual Studio debugger from locating a source file. For example, a reference like webpack:///.app.tsx might be corrected to ./app.tsx. You can do this manually in the source map file (which is helpful for testing) or through a custom build configuration. For more information, see Generate source maps for debugging.

Alternatively, if you need to break into code in a source file (for example, app.tsx) and are unable to do it, try using the debugger; statement in the source file, or set breakpoints in the Chrome Developer Tools (or F12 Tools for Microsoft Edge) instead.

Generate source maps for debugging

Visual Studio has the capability to use and generate source maps on JavaScript source files. This is often required if your source is minified or created by a transpiler like TypeScript or Babel. The options available depend on the project type.

  • A TypeScript project in Visual Studio generates source maps for you by default. For more information, see Configure source maps using a tsconfig.json file.

  • In a JavaScript project, you can generate source maps using a bundler like webpack and a compiler like the TypeScript compiler (or Babel), which you can add to your project. For the TypeScript compiler, you must also add a tsconfig.json file and set the sourceMap compiler option. For an example that shows how to do this using a basic webpack configuration, see Create a Node.js app with React.

Note

If you are new to source maps, read Introduction to JavaScript Source Maps before continuing.

To configure advanced settings for source maps, use either a tsconfig.json or the project settings in a TypeScript project, but not both.

To enable debugging using Visual Studio, you need to make sure that the reference(s) to your source file in the generated source map are correct (this may require testing). For example, if you’re using webpack, references in the source map file include the webpack:/// prefix, which prevents Visual Studio from finding a TypeScript or JSX source file. Specifically, when you correct this for debugging purposes, the reference to the source file (such as app.tsx), must be changed from something like webpack:///./app.tsx to something like ./app.tsx, which enables debugging (the path is relative to your source file). The following example shows how you can configure source maps in webpack, which is one of the most common bundlers, so that they work with Visual Studio.

(Webpack only) If you’re setting the breakpoint in a TypeScript of JSX file (rather than a transpiled JavaScript file), you need to update your webpack configuration. For example, in webpack-config.js, you might need to replace the following code:

  output: {
    filename: "./app-bundle.js", // This is an example of the filename in your project
  },

with this code:

  output: {
    filename: "./app-bundle.js", // Replace with the filename in your project
    devtoolModuleFilenameTemplate: '[resource-path]'  // Removes the webpack:/// prefix
  },

This is a development-only setting to enable debugging of client-side code in Visual Studio.

For complicated scenarios, the browser tools (F12) sometimes work best for debugging, because they don’t require changes to custom prefixes.

Configure source maps using a tsconfig.json file

If you add a tsconfig.json file to your project, Visual Studio treats the directory root as a TypeScript project. To add the file, right-click your project in Solution Explorer, and then choose Add > New Item > TypeScript JSON Configuration File. A tsconfig.json file like the following gets added to your project.

{
  "compilerOptions": {
    "noImplicitAny": false,
    "module": "commonjs",
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ]
}
Compiler options for tsconfig.json file
  • inlineSourceMap: Emit a single file with source maps instead of creating a separate source map for each source file.
  • inlineSources: Emit the source alongside the source maps within a single file; requires inlineSourceMap or sourceMap to be set.
  • mapRoot: Specifies the location where the debugger should find source map (.map) files instead of the default location. Use this flag if the run-time .map files need to be in a different location than the .js files. The location specified is embedded in the source map to direct the debugger to the location of the . map files.
  • sourceMap: Generates a corresponding .map file.
  • sourceRoot: Specifies the location where the debugger should find TypeScript files instead of the source locations. Use this flag if the run-time sources need to be in a different location than the location at design-time. The location specified is embedded in the source map to direct the debugger to where the source files are located.

For more details about the compiler options, check the page Compiler Options on the TypeScript Handbook.

Configure source maps using project settings (TypeScript project)

You can also configure the source map settings using project properties by right-clicking the project and then choosing Project > Properties > TypeScript Build > Debugging.

These project settings are available.

  • Generate source maps (equivalent to sourceMap in tsconfig. json): Generates corresponding .map file.
  • Specify root directory of source maps (equivalent to mapRoot in tsconfig.json): Specifies the location where the debugger should find map files instead of the generated locations. Use this flag if the run-time .map files need to be located in a different location than the .js files. The location specified is embedded in the source map to direct the debugger to where the map files are located.
  • Specify root directory of TypeScript files (equivalent to sourceRoot in tsconfig.json): Specifies the location where the debugger should find TypeScript files instead of source locations. Use this flag if the run-time source files need to be in a different location than the location at design-time. The location specified is embedded in the source map to direct the debugger to where the source files are located.

Debug JavaScript in dynamic files using Razor (ASP.

NET)

Starting in Visual Studio 2019, Visual Studio provides debugging support for Chrome and Microsoft Edge (Chromium) only.

However, you can’t automatically hit breakpoints on files generated with Razor syntax (cshtml, vbhtml). There are two approaches you can use to debug this kind of file:

  • Place the debugger; statement where you want to break: This statement causes the dynamic script to stop execution and start debugging immediately while it’s being created.

  • Load the page and open the dynamic document on Visual Studio: You’ll need to open the dynamic file while debugging, set your breakpoint, and refresh the page for this method to work. Depending on whether you’re using Chrome or Microsoft Edge (Chromium), you’ll find the file using one of the following strategies:

    • For Chrome, go to Solution Explorer > Script Documents > YourPageName.

      Note

      When using Chrome, you might get a message «no source is available between <script> tags». It’s OK, just continue debugging.

    • For Microsoft Edge (Chromium), use the same procedure as Chrome.

For more information, see Client-side debugging of ASP.NET projects in Google Chrome.

See also

Properties, React, Angular, Vue

ΠžΡ‚Π»Π°Π΄ΠΊΠ° JavaScript Π² Google Chrome ΠΈ Visual Studio Code | by Valery Semenenko | devSchacht

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ James Quick: Debugging JavaScript in Google Chrome and Visual Studio Code. ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π°Π²Ρ‚ΠΎΡ€Π°.

Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π° являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр инструмСнтов ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ языка программирования.

К соТалСнию, ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с JavaScript Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ срСды IDE. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ β€” Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСн вопрос, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ JavaScript-ΠΊΠΎΠ΄Π° Π² инструмСнтС Google Chrome Dev Tools ΠΈ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° Visual Studio Code.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: пСрСйдя ΠΏΠΎ этой ссылкС, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с видСовСрсиСй Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Debugging JavaScript in Google Chrome and Visual Studio Code Π½Π° английском языкС.

ΠŸΡ€Π΅Π΄ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ процСсс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСн Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ тСстового прилоТСния ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«Quick ChatΒ»:

Π£ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π° способа Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ, воспользовавшись этой сСриСй Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊΠΎΠ². Или ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ прилоТСния Β«Quick ChatΒ»:

Какой Π±Ρ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²Ρ‹ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ, Π²Π°ΠΌ потрСбуСтся локально Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«Quick ChatΒ».

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·-ΠΏΠΎΠ΄ Node.js (ΠΊΠ°ΠΊ это дСлаю я). Или Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ ΠΏΠΎΠ΄ Visual Studio Code ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Live Server.

Если Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с этим ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ этого Π²ΠΈΠ΄Π΅ΠΎ β€” Live Server Extension in Visual Studio Code.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: Π²ΠΈΠ΄Π΅ΠΎ Π½Π° английском языкС.

Π’ процСссС создания Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ я Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Β«Quick ChatΒ» Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ, которая Π½Π΅ позволяСт Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ послС Π΅Π³ΠΎ Π²Ρ…ΠΎΠ΄Π° Π² систСму.

Π‘ тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния я Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ для этого usernameInput.text вмСсто ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° usernameInput.value. Если Π±Ρ‹ я допустил Ρ‚Π°ΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ, ΠΌΠΎΠ΅ΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΡ‹ΡΠ»ΡŒΡŽ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ инструмСнтом console.log().

Но это Π½Π΅ совсСм Ρ‚ΠΎΡ‚ случай, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠ³ Π±Ρ‹ ΠΌΠ½Π΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅. Если ΠΆΠ΅ использованиС console.log() Π±Ρ‹Π»ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ вашСй ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΡ‹ΡΠ»ΡŒΡŽ — Π²Ρ‹ ΠΏΠΎΠΏΠ°Π»ΠΈ ΠΏΠΎ адрСсу ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ!

ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

НачнСм с основ. ИдСя ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова (breakpoints) для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ мСстС.

Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС прилоТСния ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Π½Ρ‘ΠΌ. Π’Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ большС ΠΈ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎ своСму Π²Ρ‹Π±ΠΎΡ€Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ останавливаСтся, Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ значСния этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ПослС установки Ρ‚ΠΎΡ‡ΠΊΠΈ останова (breakpoint) Π² ΠΊΠΎΠ΄Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… дСйствий:

  • ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
  • пошагово ΠΏΡ€ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΏΠΎ всСм этапам выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ β€” строка Π·Π° строкой
  • Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ
  • ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π£ вас Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ доступ ΠΊ просмотру стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² (call stack). Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° исполнСниС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° Π² Google Chrome

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ прилоТСния Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ​​Google Chrome, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события ΠΊΠ½ΠΎΠΏΠΊΠΈ clickBtn ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ debugger, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

Когда Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠΉΠ΄Π΅Ρ‚ Π΄ΠΎ строки с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ debugger, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ приостановлСно ΠΈ автоматичСски Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‚ΡΡ инструмСнты ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Google Chrome.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½ΠΎ сСрым Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ приостановлСно. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ° Sources Π² Chrome Dev Tools ΠΎΡ‚ΠΊΡ€Ρ‹Π»Π°ΡΡŒ автоматичСски:

Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Sources.

Π’ΠΊΠ»Π°Π΄ΠΊΠ° Sources

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° этой Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ β€” это копию исходного ΠΊΠΎΠ΄Π° прилоТСния. Π­Ρ‚ΠΎ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ» ΠΈ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ строка ΠΊΠΎΠ΄Π° с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ debugger подсвСчСна синим Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прилоТСния остановлСно Π½Π° Π΄Π°Π½Π½ΠΎΠΌ участкС ΠΊΠΎΠ΄Π°:

Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ Google Chrome прСдоставляСт Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ прилоТСния. ИмСя ΠΏΠ΅Ρ€Π΅Π΄ собой исходный ΠΊΠΎΠ΄, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Π½Π΅ΠΌ Ρ‚ΠΎΡ‡ΠΊΠΈ останова.

Π’ΠΎΡ‡ΠΊΠ° останова ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для обозначСния мСста, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ debugger, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ использовали Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ° останова, Π½ΠΎ Π² исходном ΠΊΠΎΠ΄Π΅ прилоТСния такая Ρ‚ΠΎΡ‡ΠΊΠ° останова Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ.

Π’ΠΎΡ‡ΠΊΠ° останова β€” прСднамСрСнная остановка ΠΈΠ»ΠΈ приостановка выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ»ΠΈΠΊ ΠΌΡ‹ΡˆΠΈ Π½Π° gutter β€” ΠΏΠΎΠ»Π΅ слСва ΠΎΡ‚ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ строк ΠΊΠΎΠ΄Π°. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ это дСйствиС, Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Google Chrome автоматичСски Π΄ΠΎΠ±Π°Π²ΠΈΠ» эту Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π² список Β«BreakpointsΒ»:

Π’ΠΊΠ»Π°Π΄ΠΊΠ° Scope

На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ScopeΒ» Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π° этой Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π°: локальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости (Local), глобальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости (Global) ΠΈ Ρ€Π°Π·Π΄Π΅Π» сцСнариСв (Script).

Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ сцСнариСв Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² области видимости Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ скрипта:

Π‘ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ процСсса ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ прилоТСния Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² этой Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. Π­Ρ‚ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° использованию многочислСнным console.log().

Π’ΠΊΠ»Π°Π΄ΠΊΠ° Watch

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, ΠΏΠΎΠΌΠΈΠΌΠΎ просмотра ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ScopeΒ», Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½Π° всСм этапС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Добавляя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«WatchΒ», ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ устанавливаСтС Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ undefined Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΊΠΎΠ΄Π΅).

НаТмитС Π·Π½Π°Ρ‡ΠΎΠΊ плюса ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Π² нашСм случаС это usernameInput:

ПошаговоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ список Ρ‚ΠΎΡ‡Π΅ΠΊ останова

Π Π°Π·Π΄Π΅Π» Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Β«SourcesΒ», располоТСнный Π² Π»Π΅Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ ΠΎΠΊΠ½Π° ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°, позволяСт ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список Ρ‚ΠΎΡ‡Π΅ΠΊ останова, стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² (call stack) ΠΈ Ρ‚. Π΄.

Π’ стСкС Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° функция, которая являСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ события для ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°. Ѐункция ΡƒΠΊΠ°Π·Π°Π½Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это СдинствСнная функция, которая Π±Ρ‹Π»Π° Π²Ρ‹Π·Π²Π°Π½Π° Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ΄Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° исполнСниС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ эта Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ со стрСлками Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части экрана. Они ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ функциям, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅, для продолТСния выполнСния вашСго ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ прохоТдСния ΠΏΠΎ Π½Π΅ΠΌΡƒ ΠΏΠΎ строкам (stepping). Π― Π±Ρ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ эти ΠΊΠ½ΠΎΠΏΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ½ΡƒΡ‚ΡŒ ΠΊ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.

НаконСц, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ‚ΠΎΡ‡Π΅ΠΊ останова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Ρ‹. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания условной Ρ‚ΠΎΡ‡ΠΊΠΈ останова (conditional breakpoint), которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ условия.

НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ события Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π²Ρ…ΠΎΠ΄Π° Π² систСму Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ пытаСтся Π²ΠΎΠΉΡ‚ΠΈ Π² систСму Π±Π΅Π· Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΠΎΠ»Π΅ gutter ΠΈ создав Ρ‚ΠΎΡ‡ΠΊΡƒ останова со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ условиСм β€” usernameInput.text === '':

Π’ случаС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ прилоТСния Quick Chat, Ссли Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° Π² систСму Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° эта Ρ‚ΠΎΡ‡ΠΊΠ° останова. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ сущСствуСт Π΅Ρ‰Ρ‘ большС доступных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ‚ΠΎΡ‡Π΅ΠΊ останова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° Π² Visual Studio Code

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Chrome Developer Tools являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Π² своСм Ρ€ΠΎΠ΄Π΅. Как Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ возмоТности ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ прилоТСния.

Однако ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Visual Studio Code Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π° большая Ρ€Π°Π±ΠΎΡ‚Π° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ процСсс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² этом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π΅Ρ‰Ρ‘ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΌ.

МнС ΠΎΡ‡Π΅Π½ΡŒ нравится Visual Studio Code ΠΈ я ΠΏΡ€ΠΎΠ²ΠΎΠΆΡƒ Π² Π½Π΅ΠΌ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Π΅ΠΌ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎΡ‚ процСсс Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΊΠΎΠ΄Π° Π² VS Code, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ Debugger for Chrome:

Π”Π°Π²Π°ΠΉΡ‚Π΅ познакомимся с Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ Debug. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½Π° располоТСна Π½Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ эту Π²ΠΊΠ»Π°Π΄ΠΊΡƒ, Π½Π°ΠΆΠ°Π² Π½Π° Π·Π½Π°Ρ‡ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит ΠΊΠ°ΠΊ ΠΆΡƒΡ‡ΠΎΠΊ (bug).

ΠžΡ‚ΠΊΡ€Ρ‹Π² эту панСль, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ инструмСнты, ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π½Π° Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Google Chrome β€” ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Ρ‚ΠΎΡ‡ΠΊΠΈ останова:

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ Π² Chrome Dev Tools, Ρ‚Π°ΠΊΠΆΠ΅ доступны Π² VS Code.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ познакомились с Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ Debug, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, которая ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρƒ VS Code, ΠΊΠ°ΠΊ Π΅ΠΌΡƒ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

VS Code Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ launch.json Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ .vscode. Π§Ρ‚ΠΎΠ±Ρ‹ VS Code создал этот Ρ„Π°ΠΉΠ» для нас, Π² мСню Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ список «НСт ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉΒ» (Β«No ConfigurationsΒ») ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽΒ» (Β«Add ConfigurationΒ»).

VS Code Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ launch.json Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ .vscode

Π—Π°Ρ‚Π΅ΠΌ ΠΈΠ· этого списка Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ Β«ChromeΒ»:

Из Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Β«Chrome: LaunchΒ»:

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ создали, Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡ€Ρ‚Ρƒ.

Нам Π½ΡƒΠΆΠ½ΠΎ внСсти нСбольшоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² эту ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ β€” ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° исходный ΠΊΠΎΠ΄ тСстируСмого прилоТСния. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ прилоТСния находится Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ public, поэтому Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Β«webRootΒ».

Π§Ρ‚ΠΎΠ±Ρ‹ это сработало, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ локально Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡ€Ρ‚Ρƒ:

Когда конфигурация настроСна, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π½Π°ΠΆΠ°Π² Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Run CodeΒ». ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΡΡ Π² ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Google Chrome, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° мСню ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ появилось Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° VS Code. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ возмоТности для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ ΠΈ взаимодСйствия с ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ:

Π‘ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π² ΠΊΠΎΠ΄Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ‹ это Π΄Π΅Π»Π°Π»ΠΈ Π² Google Chrome. Для этого Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ΠΏΠΎΠ»Π΅ gutter рядом с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎΠΉ строки. Π― ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ мСстС, Ρ‡Ρ‚ΠΎ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события Π²Ρ…ΠΎΠ΄Π° Π² систСму.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ссли ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π²ΠΎΠΉΡ‚ΠΈ Π² систСму Π±Π΅Π· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚ΠΎΡ‡ΠΊΠ° останова Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ VS Code для дальнСйшСго Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° прилоТСния:

Вся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ рассмотрСли Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Google Chrome, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Ρ‚ΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΠΈ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ VS Code.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΠΎΠ»Π΅ gutter ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «условная Ρ‚ΠΎΡ‡ΠΊΠ° останова» с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ условиСм.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ значСния ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π·Π½Π°ΠΊ «плюс» Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ исслСдуйтС ΠΈΡ…!

Π’Ρ‹Π²ΠΎΠ΄

Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг Π²ΠΎ своСм Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π΅Ρ‡Ρ‚ΠΎ большСС, Ρ‡Π΅ΠΌ просто ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ использованиС экосистСмы инструмСнтов для тСстирования языка программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° β€” ΠΎΠ΄Π½Π° ΠΈΠ· Ρ‚Π΅Ρ… Ρ‚Π΅ΠΌ, для изучСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ потрСбуСтся врСмя ΠΈ силы, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Но Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ усилия ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ окупят сСбя.

Моя рСкомСндация β€” ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠ°ΠΊ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Google Chrome, Ρ‚Π°ΠΊ ΠΈ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Visual Studio Code ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ большС нравится. Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ мСня Π² Twitter.

  • ΠžΡ‚Π»Π°Π΄ΠΊΠ° Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Chrome
  • ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство ΠΏΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΊΠΎΠ΄Π° Π½Π° JavaScript Π² Chrome Devtools
  • ΠžΡ‚Π»Π°Π΄ΠΊΠ° Π² VS Code ΠΈ Chrome

Π‘Π»ΡƒΡˆΠ°ΠΉΡ‚Π΅ наш подкаст Π² iTunes ΠΈ SoundCloud, Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ нас Π½Π° Medium, ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΡŒΡ‚Π΅ Π½Π° GitHub, ΠΎΠ±Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ Telegram, слСдитС Π² Twitter ΠΈ ΠΊΠ°Π½Π°Π»Π΅ Telegram, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠΉΡ‚Π΅ Π² VK ΠΈ Facebook.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ тСстированиС JavaScript Π² прилоТСниях HTML5

IDE ΠΌΠΎΠΆΠ½ΠΎ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ для выполнСния ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ исполнитСлСй тСстов Karma ΠΈΠ»ΠΈ JS Test Driver. Karma ΠΈ JS Test Driver — исполнитСли тСстов, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ URL-адрСс для выполнСния ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов JavaScript.

Π’ этом ΡƒΡ‡Π΅Π±Π½ΠΎΠΌ курсС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты JavaScript, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² состав ΠΎΠ±Ρ€Π°Π·Ρ†Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ исполнитСля тСстов Karma. Π’ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Karma. ΠŸΡ€ΠΈ запускС тСстов запускаСтся тСстовый сСрвСр ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ выполнСния тСстов. Π’ ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° отобраТаСтся статусноС сообщСниС сСрвСра, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сСрвСр Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈ находится Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ оТидания.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Karma

Для выполнСния тСстов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Karma ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Karma ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π½Π° локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. ПослС установки Karma потрСбуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Karma, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ установки ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² ΠΎΠΊΠ½Π΅ «Π‘войства ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°».

  1. УстановитС Karma.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ способ ΠΈ ΠΏΠ°ΠΏΠΊΡƒ назначСния для установки Karma. ΠŸΠ°ΠΏΠΊΡƒ установки ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΡ€ΠΈ настройкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Karma. БвСдСния ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ… установки Karma ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° Π²Π΅Π±-сайтС Karma.

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Karma.

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ курса этот этап ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Karma ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² состав ΠΎΠ±Ρ€Π°Π·Ρ†Π° прилоТСния. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ структуру Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Karma, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Karma» Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ «ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты» мастСра создания Ρ„Π°ΠΉΠ»ΠΎΠ².

Figure 10. Новый Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Karma Π² мастСрС создания Ρ„Π°ΠΉΠ»ΠΎΠ²

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Karma init Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Karma init см. Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Karma.

  1. Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ ΡƒΠ·Π΅Π» «Π€Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ» Π² ΠΎΠΊΠ½Π΅ «ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹» ΠΈ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» karma.conf.js , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Karma.

Π’ Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Karma пСрСчислСны Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ тСстов. Π’Π°ΠΊΠΆΠ΅ здСсь пСрСчислСны ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Karma, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для выполнСния тСстов Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Figure 11. Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Karma Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅

  1. ΠŸΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΡƒΠ·Π΅Π» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΎΠΊΠ½Π΅ «ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Π‘войства» Π²ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ мСню.

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ «Π’СстированиС JavaScript» Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ» ΠΎΠΊΠ½Π° «Π‘войства ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°».

  1. Π’ спискС «Π’Сстовый ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€» Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Karma. НаТмитС OK.

  1. Π‘Π½ΠΎΠ²Π° ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ «Π‘войства ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Karma Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ «Π’СстированиС JavaScript» Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ».

  1. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ установки Karma.

Если установка Karma Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ «ΠŸΠΎΠΈΡΠΊ», ΠΈ IDE ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ ΠΏΠ°ΠΏΠΊΡƒ установки автоматичСски. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΠ±Π·ΠΎΡ€» ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ установки Karma Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

  1. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Karma. НаТмитС OK.

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ курса Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠŸΠΎΠΈΡΠΊ», ΠΈ IDE ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Karma, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΠ±Π·ΠΎΡ€» ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Figure 12. ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ОК ΠΏΠΎΠ΄ ΡƒΠ·Π»ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΎΠΊΠ½Π΅ «ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹» появится ΡƒΠ·Π΅Π» Karma. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΡƒΠ·Π΅Π» Karma ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ/ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСрвСр Karma ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

  1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΡƒΠ·Π΅Π» «Karma» Π² ΠΎΠΊΠ½Π΅ «ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ мСню «Π—апуск».

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ сСрвСр Karma ΠΈ откроСтся ΠΎΠΊΠ½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° с сообщСниСм ΠΎ статусС сСрвСра.

Figure 13. Бтатус сСрвСра Karma Π² ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Chrome

Π’ ΠΎΠΊΠ½Π΅ «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹» ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ свСдСния ΠΎ статусС сСрвСра. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ).

Figure 14. Настройка ΡƒΠ·Π»Π° ‘jsTest Driver’ Π² ΠΎΠΊΠ½Π΅ ‘Π‘Π»ΡƒΠΆΠ±Ρ‹’

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Для выполнСния тСстов Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ ΠΎΠΊΠ½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½ сСрвСр Karma.

  1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΡƒΠ·Π΅Π» Karma ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ > karma.conf.js «, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° использовала Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

  1. ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

Π’ΠΎΡ‡ΠΊΠΈ останова ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, сняв Ρ„Π»Π°ΠΆΠΊΠΈ для Ρ‚ΠΎΡ‡Π΅ΠΊ останова Π² ΠΎΠΊΠ½Π΅ ‘Π’ΠΎΡ‡ΠΊΠΈ останова’.

  1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΡƒΠ·Π΅Π» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΎΠΊΠ½Π΅ ‘ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹’ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ‘ВСстированиС’.

Если Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ мСню «Π’СстированиС» ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ тСстов запускаСт ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты для Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ IDE открываСтся ΠΎΠΊΠ½ΠΎ «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстов», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования.

Figure 15. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования Karma

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JS Test Driver

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ использования JS Test Driver Π² IDE ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ JS Test Driver, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ, Π²Ρ‹Π±Ρ€Π°Π² ΡƒΠ·Π΅Π» JS Test Driver Π² ΠΎΠΊΠ½Π΅ «Π‘Π»ΡƒΠΆΠ±Ρ‹». Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ мСстополоТСниС JAR-сСрвСра JS Test Driver ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ для выполнСния тСстов. Π£Π·Π΅Π» JS Test Driver позволяСт быстро ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π»ΠΈ сСрвСр, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСрвСр.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ настройкС сСрвСра JS Test Driver см. Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JsTestDriver.

  1. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ JAR JS Test Driver ΠΈ сохранитС Ρ„Π°ΠΉΠ» JAR Π² локальной систСмС.

  2. Π’ ΠΎΠΊΠ½Π΅ ‘Π‘Π»ΡƒΠΆΠ±Ρ‹’ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΡƒΠ·Π΅Π» JS Test Driver ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ‘Настройка’.

Figure 16. Настройка ΡƒΠ·Π»Π° ‘jsTest Driver’ Π² ΠΎΠΊΠ½Π΅ ‘Π‘Π»ΡƒΠΆΠ±Ρ‹’

  1. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ‘ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ’ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ‘ΠžΠ±Π·ΠΎΡ€’ ΠΈ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» JAR JS Test Driver.

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Chrome с NetBeans Connector (Π² NetBeans IDE 7.3 — Chrome с NetBeans JS Debugger) Π² качСствС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ ОК.

Figure 17. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ‘Настройка ΡƒΠ·Π»Π° ‘jsTest Driver’

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ. ΠœΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° JAR для JS Test Driver Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ настройкС JS Test Driver.

Бписок Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для тСстирования Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, установлСнных Π² систСмС. МоТно Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ нСсколько Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², Π² качСствС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…, Π½ΠΎ для запуска тСстов ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для сСрвСра, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Ρ‹ автоматичСски ΠΏΡ€ΠΈ запускС сСрвСра ΠΈΠ· IDE.

Если Π²Ρ‹Π±Ρ€Π°Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ «Chrome с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ NetBeans», появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ тСстов, выполняСмых с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JS Test Driver.

  1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΡƒΠ·Π΅Π» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΎΠΊΠ½Π΅ «ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «New > Other»(Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ > Π”Ρ€ΡƒΠ³ΠΎΠ΅).

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ jsTestDriver Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ‘ВСстированиС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ’. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ ‘Π”Π°Π»Π΅Π΅’.

  1. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ jsTestDriver Π·Π°Π΄Π°Π½ ΠΊΠ°ΠΊ ‘Имя Ρ„Π°ΠΉΠ»Π°’.

  1. Π’ ΠΏΠΎΠ»Π΅ ‘Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»’ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» находится Π² ΠΏΠ°ΠΏΠΊΠ΅ config ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ( AngularJSPhoneCat/config/jsTestDriver.conf ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π€Π°ΠΉΠ»ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ jsTestDriver.conf Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΠ° config ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Если мСстополоТСниСм созданного Ρ„Π°ΠΉΠ»Π° Π½Π΅ явлСтся ΠΏΠ°ΠΏΠΊΠ° config , Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ‘ΠžΠ±Π·ΠΎΡ€’ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ AngularJSPhoneCat - Π€Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅.

  1. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ установлСн Ρ„Π»Π°ΠΆΠΎΠΊ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Jasmine. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ ‘Π“ΠΎΡ‚ΠΎΠ²ΠΎ’.

Figure 18. ΠœΠ°ΡΡ‚Π΅Ρ€ создания Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ jsTestDriver

*ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅.*Для запуска jsTestDriver Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Jasmine. Если Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ IDE Π½Π΅ удаСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Jasmine, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ настройки прокси IDE Π² ΠΎΠΊΠ½Π΅ ‘ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹’.

ПослС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ ‘Π“ΠΎΡ‚ΠΎΠ²ΠΎ’ срСда IDE создаст Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ схСмы jsTestDriver.conf ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ„Π°ΠΉΠ» Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. Π’ ΠΎΠΊΠ½Π΅ ‘ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹’ отобразится, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Ρ‹Π» создан Π² ΡƒΠ·Π»Π΅ ‘Π€Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ’. Если Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ lib Π² ΡƒΠ·Π»Π΅ ‘ВСсты ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ’, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Jasmine.

Figure 19. Папка ‘ВСсты ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ’ Π² ΠΎΠΊΠ½Π΅ ‘ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹’

Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ содСрТимоС Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ создаСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:

server: http://localhost:42442
load:
  - test/lib/jasmine/jasmine.js
  - test/lib/jasmine-jstd-adapter/JasmineAdapter.js
  - test/unit/*.js
exclude:

Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ опрСдСляСт мСстополоТСниС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° локальном сСрвСрС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для запуска тСстов. Π’Π°ΠΊΠΆΠ΅ Π² Ρ„Π°ΠΉΠ»Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ список Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Jasmine ΠΈ всС Ρ„Π°ΠΉΠ»Ρ‹ JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² ΠΏΠ°ΠΏΠΊΠ΅ unit . ВСсты ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ находятся Π² ΠΏΠ°ΠΏΠΊΠ΅ unit , Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ список, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ мСстополоТСниС Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠ΄Π»Ρ запуска тСстов. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСсты ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ мСстополоТСниС Ρ„Π°ΠΉΠ»ΠΎΠ² JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Angular JavaScript Π² список Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ курса для выполнСния тСстов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JS Test Driver потрСбуСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² список Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ (Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ).

load:
    - test/lib/jasmine/jasmine.js
    - test/lib/jasmine-jstd-adapter/JasmineAdapter.js
*
    - app/lib/angular/angular.js
    - app/lib/angular/angular-mocks.js
    - app/lib/angular/angular-route.js
    - app/lib/angular/angular-animate.js
    - app/lib/angular/angular-resource.js
    - app/js/*.js
*
    - test/unit/*.js
  1. ПослС обновлСния Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΡƒΠ·Π΅Π» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΎΠΊΠ½Π΅ «ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹» ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ «Π’СстированиС».

ПослС Ρ‰Π΅Π»Ρ‡ΠΊΠ° ‘Π’Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ IDE’ автоматичСски открываСтся срСдство запуска JS Test Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Chrome ΠΈ Π΄Π²Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π² ΠΎΠΊΠ½Π΅ ‘Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅’.

Figure 20. jsTestDriver Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π² ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°

Π’ ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Chrome отобраТаСтс сообщСниС ΠΎ запускС сСрвСра jsTestDriver. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сСрвСр Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° localhost:42442 . На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ‘Π‘Π΅Ρ€Π²Π΅Ρ€ js-test-driver’ Π² ΠΎΠΊΠ½Π΅ ‘Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅’ отобраТаСтся состояниС сСрвСра.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ JsTestDriver выполняСтся Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ NetBeans выполняСт ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов становится доступна ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ тСстов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JS Test Driver, Ссли Π² качСствС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² Π²Ρ‹Π±Ρ€Π°Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ «Chrome с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ NetBeans».

Figure 21. Π²ΠΊΠ»Π°Π΄ΠΊΠ° ‘Π‘Π΅Ρ€Π²Π΅Ρ€ js-test-driver’ Π² ΠΎΠΊΠ½Π΅ ‘Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅’

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Для выполнСния тСстов ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΎΠΊΠ½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ ΠΈ сСрвСр jsTestDriver Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½. МоТно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΡƒΠ·Π΅Π» JS Test Driver Π² ΠΎΠΊΠ½Π΅ ‘Π‘Π»ΡƒΠΆΠ±Ρ‹’ ΠΈ Π²Ρ‹Π±Ρ€Π°Π² ‘ΠŸΡƒΡΠΊ’.

Figure 22. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстов JS Unit Π² ΠΎΠΊΠ½Π΅ ‘Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅’

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «ΠžΠΊΠ½ΠΎ > Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ > Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстов» Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстов» ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡ‚ΠΎΠ³ΠΈ выполнСния.

Figure 23. Окно ‘Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСста’

МоТно Π½Π°ΠΆΠ°Ρ‚ΡŒ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ„Π»Π°ΠΆΠΎΠΊ Π² Π»Π΅Π²ΠΎΠΌ Π³Ρ€Π°Π½ΠΈΡ†Π΅ ΠΎΠΊΠ½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ список ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… тСстов.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° — Начало Π Π°Π±ΠΎΡ‚Ρ‹ | Node.js

Π­Ρ‚ΠΎ руководство ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ скриптов Node.js.

ΠŸΡ€ΠΈ запускС с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ --inspect процСсс Node.js ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π½Π° хостС 127.0.0.1 с ΠΏΠΎΡ€Ρ‚ΠΎΠΌ 9229. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ процСссу Ρ‚Π°ΠΊΠΆΠ΅ назначаСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ UUID.

ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ инспСктора Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ адрСс хоста, ΠΏΠΎΡ€Ρ‚ ΠΈ UUID для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. ΠŸΠΎΠ»Π½Ρ‹ΠΉ URL Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ: ws://127.0.0.1:9229/0f2c936f-b1cd-4ac9-aab3-f63b0f33d55e.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ Node.js Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ сообщСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Ссли ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ сигнал SIGUSR1. (SIGUSR1 Π½Π΅ доступСн Π² срСдС Windows.) Π’ Node.js вСрсии 7 ΠΈ Π½ΠΈΠΆΠ΅ это Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ Debugger API. Π’ Node.js вСрсии 8 ΠΈ Π²Ρ‹ΡˆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ Inspector API.


Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π΅Π±Π°Π³Π³Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ срСдС выполнСния Node.js, Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ, способный ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ этому ΠΏΠΎΡ€Ρ‚Ρƒ, смоТСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ процСсса Node. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ послСдствия для бСзопасности ΠΏΡ€ΠΈ ΠΎΠ±Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ ΠΏΠΎΡ€Ρ‚Π° ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΈ частных сСтях.

Если ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ привязан ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌΡƒ IP-адрСсу, ΠΈΠ»ΠΈ ΠΊ 0.0.0.0, любой ΠΊΠ»ΠΈΠ΅Π½Ρ‚, способный Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ вашСго IP-адрСса смоТСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ смоТСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ node --inspect привязываСтся ΠΊ 127.0.0.1. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ внСшниС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ явно ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ общСдоступный IP-адрСс ΠΈΠ»ΠΈ 0.0.0.0 ΠΈ Ρ‚.Π΄. Однако это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡƒΠ³Ρ€ΠΎΠ·Π΅ Π΅Π³ΠΎ бСзопасности. ΠœΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π²Π°ΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ„Π°ΠΉΡ€Π²ΠΎΠ»ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… срСдств контроля доступа для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΡƒΠ³Ρ€ΠΎΠ·Ρƒ.

Π‘ΠΌ. Ρ€Π°Π·Π΄Π΅Π» ‘Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сцСнариСв ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ’, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ бСзопасно ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°.

Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ привязали ΠΏΠΎΡ€Ρ‚ инспСктора ΠΊ 127.0.0.1 (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), Π»ΡŽΠ±Ρ‹Π΅ прилоТСния, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ локально Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ доступ. Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ.

Π’Π΅Π±-сайты, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запросы WebSocket ΠΈ HTTP Π² соотвСтствии с модСлью бСзопасности Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ HTTP-соСдинСниС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для получСния ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° сСанса ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ ограничСния Π΄ΠΎΠΌΠ΅Π½Π° (Same Origin Policy) Π½Π΅ позволяСт Π²Π΅Π±-сайтам ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ это HTTP-соСдинСниС. Для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ DNS rebinding Node.js провСряСт, Ρ‡Ρ‚ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ‘Host’ для соСдинСния Ρ‚ΠΎΡ‡Π½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ IP-адрСс, localhost ΠΈΠ»ΠΈ localhost6.

Π­Ρ‚ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ бСзопасности Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ сСрвСру ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ c ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ хоста. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Π°Π² Π»ΠΈΠ±ΠΎ IP-адрСс, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ssh-Ρ‚ΡƒΠ½Π½Π΅Π»ΠΈ, ΠΊΠ°ΠΊ описано Π½ΠΈΠΆΠ΅.

НСсколько коммСрчСских ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… инструмСнтов ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ инспСктору Node. js. Основная информация ΠΏΠΎ Π½ΠΈΠΌ:

  • ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ CLI, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Π€ΠΎΠ½Π΄ΠΎΠΌ Node.js, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π°.
  • Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ вСрсия собираСтся вмСстС с Node.js, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ node inspect myscript.js.
  • ПослСдняя вСрсия Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСна нСзависимо (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, npm install -g node-inspect) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· node-inspect myscript.js.
  • Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1: ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ chrome://inspect Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π½Π° основС Chromium ΠΈΠ»ΠΈ edge://inspect Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Edge. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Configure ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π²Π°ΠΌ хост ΠΈ ΠΏΠΎΡ€Ρ‚ пСрСчислСны Π² спискС.
  • Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2: Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ devtoolsFrontendUrl ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π° /json/list (curl http://localhost:9229/json/list) ΠΈΠ»ΠΈ тСкст подсказки —inspect ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π΅Π³ΠΎ Π² Chrome.
  • На ΠΏΠ°Π½Π΅Π»ΠΈ «ΠžΡ‚Π»Π°Π΄ΠΊΠ°» (Debug) Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ настроСк, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» . vscode/launch.json. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Node.js» для ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ настройки.
  • Π’ мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Debug > Start Debugging» ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ F5.
  • Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ инструкции.
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Node.js ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Debug» (Shift+F9). --inspect Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Node.js 7+. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, снимитС Ρ„Π»Π°ΠΆΠΎΠΊ js.debugger.node.use.inspect Π² рССстрС IDE.
  • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для облСгчСния ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ эндпоинтам ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π°.
  • ЗапуститС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Node.js ΠΈΠ· прСдставлСния Debug ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ F5. Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ инструкции
  • ΠžΡ‚ΠΊΡ€Ρ‹Π² Ρ„Π°ΠΉΠ» .js, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Debug As… > Node program», ΠΈΠ»ΠΈ
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΊ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Node (ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌΡƒ с --inspect).

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ пСрСчислСно влияниС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… runtime Ρ„Π»Π°Π³ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅:

Π€Π»Π°Π³Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
—inspect
  • Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ инспСктор
  • ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ адрСс ΠΈ ΠΏΠΎΡ€Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (127. 0.0.1:9229)
—inspect=[host:port]
  • Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ инспСктор
  • ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ адрСс host (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: 127.0.0.1)
  • ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚ port (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: 9229)
—inspect-brk
  • Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ инспСктор
  • ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ адрСс ΠΈ ΠΏΠΎΡ€Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (127.0.0.1:9229)
  • ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сцСнария ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ выполнСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
—inspect-brk=[host:port]
  • Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ инспСктор
  • ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ адрСс host (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: 127.0.0.1)
  • ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚ port (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: 9229)
  • ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сцСнария ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ выполнСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
node inspect script.js
  • Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ процСсс для выполнСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ скрипта ΠΏΠΎΠ΄ Ρ„Π»Π°Π³ΠΎΠΌ —inspect; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ основной процСсс для запуска ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° CLI.
node inspect --port=xxxx script.js
  • Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ процСсс для выполнСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ скрипта ΠΏΠΎΠ΄ Ρ„Π»Π°Π³ΠΎΠΌ —inspect; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ основной процСсс для запуска ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° CLI.
  • ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚ port (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: 9229)

ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π» общСдоступный IP-адрСс. Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SSH-Ρ‚ΡƒΠ½Π΅Π»Π»ΠΈ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ прСдоставляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² цСлях ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ возмоТностСй. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ всС риски ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности, связанныС с прСдоставлСниСм ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа ΠΊ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ слуТбС.

Допустим Π²Ρ‹ запускаСтС Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ машинС, remote.example.com, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ. На этой машинС слСдуСт Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ процСсс Node с инспСктором, ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ localhost (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ).

node --inspect server.js

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ssh-Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ Π½Π° локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

ssh -L 9221:localhost:9229 [emailΒ protected]

Π­Ρ‚ΠΎ запустит сСссию ssh, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ соСдинСниС с ΠΏΠΎΡ€Ρ‚ΠΎΠΌ 9221 Π½Π° вашСм локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΊ ΠΏΠΎΡ€Ρ‚Ρƒ 9229 Π½Π° remote.example.com. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ localhost:9221 ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Chrome DevTools ΠΈΠ»ΠΈ Visual Studio Code, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node.js Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ локально.


Debugger API устарСло начиная с Node.js вСрсии 7.7.0. ВмСсто Π½Π΅Π³ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Inspector API с Ρ„Π»Π°Π³ΠΎΠΌ —inspect.

ΠŸΡ€ΠΈ запускС с Ρ„Π»Π°Π³ΠΎΠΌ —debug ΠΈΠ»ΠΈ —debug-brk Π² вСрсии 7 ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅, Node.js ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ V8, Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ TCP (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 5858). Π›ΡŽΠ±ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ этот ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ процСсс; ΠΏΠ°Ρ€Π° популярных ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² пСрСчислСны Π½ΠΈΠΆΠ΅.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ V8 Π±ΠΎΠ»Π΅Π΅ Π½Π΅ поддСрТиваСтся ΠΈ Π½Π΅ докумСнтируСтся.

ВстроСнный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ node debug script_name.js для запуска скрипта со встроСнным CLI ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ. Π‘Π°ΠΌ скрипт Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ с Ρ„Π»Π°Π³ΠΎΠΌ --debug-brk Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ процСссС Node, Π° ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ процСсс Node запускаСт скрипт _debugger.js ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Ρ†Π΅Π»Π΅Π²ΠΎΠΌΡƒ скрипту.

ΠžΡ‚Π»Π°ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node.js с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Chrome DevTools ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» инспСктора, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Chromium, Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° V8, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Node.js.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ устранСниС распространённых ошибок Π² JavaScript

Π’Ρ€Π΅ΠΌΠ΅Π½Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ JavaScript заставляСт Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π²Ρ‹Π΄ΠΎΡ…ΡˆΠΈΠΌΡΡ ΠΈ ΠΈΠ·ΠΌΠΎΠΆΠ΄Ρ‘Π½Π½Ρ‹ΠΌ, поэтому Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ подсказки ΠΏΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ лишними. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΈΠ· пСсСн ΠΌΡ‹ постараСмся Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки Π² ΠΊΠΎΠ΄Π΅ Π½Π° JS ΠΈ способы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ.

Бвойство Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ

let girl = {
    name: "Lucky",
    location: "Hollywood",
    profession: "star",
    thingsMissingInHerLife: true,
    lovely: true,
    cry: function() {
        return "cry, cry, cries in her lonely heart"
    }
}

console. log(girl.named.lucky)

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«Uncaught TypeError: Cannot read property β€˜lucky’ of undefinedΒ». Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ girl Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ свойства named, хотя Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ свойство name. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ свойство girl.named Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ доступ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ΠΎ просто Π½Π΅ сущСствуСт. Если ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ girl.named.lucky Π½Π° girl.name, Ρ‚ΠΎ ΠΊΠΎΠ΄ Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π½Π°ΠΌ Β«LuckyΒ».

Бвойство β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, привязанноС ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ JavaScript. ΠŸΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ большС ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ здСсь (ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π° английском языкС).

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ошибок TypeError

Ошибки Ρ‚ΠΈΠΏΠ° TypeError ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дСйствия с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ примСняСтС .bold() ΠΊ числу, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚Π΅ свойство undefined ΠΈΠ»ΠΈ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. НапримСр, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ссли Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚Π΅ girl(), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° Π½Π΅ функция. Π’ послСднСм случаС Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Β«Uncaught TypeError: yourVariable.bold is not a functionΒ» ΠΈ Β«girl is not a functionΒ».

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ этих ошибок Π½Π°Π΄ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ girl? И Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ girl.named? Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ это изучая ΠΊΠΎΠ΄, выводя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ console.log, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ debugger ΠΈΠ»ΠΈ просто Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π² имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² консоли. Π£Π΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТащимся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Если Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ условиС ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊ try..catch, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅.

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

Если Π²Π΅Ρ€ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌ пСсни Β«Baby One More TimeΒ», слово Β«hitΒ» Π² строчкС Β«Hit me baby, one more timeΒ» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΒ», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π‘Ρ€ΠΈΡ‚Π½ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‘ Π±Ρ‹Π²ΡˆΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΠ» Π΅ΠΉ Π΅Ρ‰Ρ‘ Ρ€Π°Π·. Π­Ρ‚ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ Π΅Ρ‰Ρ‘ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ количСству Π·Π²ΠΎΠ½ΠΊΠΎΠ² Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. По сути это рСкурсия, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² случаС пСрСполнСния стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ сообщСния ΠΎΠ± ошибкС зависят ΠΎΡ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π½ΠΎ выглядят ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Error: Out of stack space (Edge)
InternalError: too much recursion (Firefox)
RangeError: Maximum call stack size exceeded (Chrome)

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Ссли Π² рСкурсии Π½Π΅ прСдусмотрСн Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ случай ΠΈΠ»ΠΈ Ссли ΠΊΠΎΠ΄ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ обращаСтся ΠΊ этому ΡΠ»ΡƒΡ‡Π°ΡŽ.

function oneMoreTime(stillBelieve=true, loneliness=0) {
    if (!stillBelieve && loneliness < 0) return
    loneliness++
    return oneMoreTime(stillBelieve, loneliness)
}

Π’ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ stillBelieve Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, ΠΈ поэтому ΠΌΡ‹ Ρ€Π°Π· Π·Π° Ρ€Π°Π·ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ oneMoreTime, увСличивая одиночСство, ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Если ΠΆΠ΅ Π‘Ρ€ΠΈΡ‚Π½ΠΈ Ρ€Π΅ΡˆΠΈΡ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π½Π° своих Π΄Ρ€ΡƒΠ·Π΅ΠΉ, это ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ Π΅Ρ‘ одиночСство, ΠΎΠ½Π° пСрСстанСт Π²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ большС ΠΆΠ΄Π°Ρ‚ΡŒ Π·Π²ΠΎΠ½ΠΊΠ° ΠΎΡ‚ Π±Ρ‹Π²ΡˆΠ΅Π³ΠΎ ΠΏΠ°Ρ€Ρ‚Π½Ρ‘Ρ€Π°.

function oneMoreTime(stillBelieve=true, loneliness=0) {
    if (!stillBelieve && loneliness < 0) return
    loneliness--
    stillBelieve = false
    return oneMoreTime(stillBelieve, loneliness)
}

Π•ΡΡ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ случаи с бСсконСчными Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° систСма Π½Π΅ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ сообщСниС ΠΎΠ± ошибкС, Π½ΠΎ вмСсто этого страница, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ исполняСтся ΠΊΠΎΠ΄, зависаСт. Π­Ρ‚ΠΎ происходит Π² случаС Ρ†ΠΈΠΊΠ»Π° while Π±Π΅Π· условия Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ.

let worldEnded = false

while (worldEnded !== true) {
  console.log("Keep on dancin' till the world ends")
}

Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

let worldEnded = false

while (worldEnded !== true) {
  console.log("Keep on dancin' till the world ends")
  worldEnded = true
}

ΠžΡ‚Π»Π°Π΄ΠΊΠ° бСсконСчных Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ рСкурсий

Для Π½Π°Ρ‡Π°Π»Π°, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с бСсконСчным Ρ†ΠΈΠΊΠ»ΠΎΠΌ, Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ, Ссли Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ Chrome ΠΈΠ»ΠΈ Edge, ΠΈΠ»ΠΈ ΠΎΠΊΠ½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Ссли Ρƒ вас Firefox. Π—Π°Ρ‚Π΅ΠΌ просмотритС ΠΊΠΎΠ΄: Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρ‚Π°ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ создаёт бСсконСчный Ρ†ΠΈΠΊΠ» ΠΈΠ»ΠΈ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ. Если Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ β€” Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Ρ†ΠΈΠΊΠ» ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ debugger ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… итСрациях. Если ΠΎΠ½ΠΈ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌ, Π²Ρ‹ это ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ стоило Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ debugger самой ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ»Π°. Π—Π°Ρ‚Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π² Chrome ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²Β Scope. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«nextΒ» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ руководство Π½Π° английском языкС ΠΏΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Chrome’s DevTools, Π° здСсь β€” для Firefox.

Ошибка синтаксиса

SyntaxError β€” вСроятно самая распространённая Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ошибок Π² JavaScript. Π­Ρ‚ΠΈ ошибки Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, Ссли Π²Ρ‹ Π½Π΅ ΡΠΎΠ±Π»ΡŽΠ΄Π°Π΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° синтаксиса языка. ΠšΠΎΠΏΠΈΡ€ΡƒΡ посыл пСсни Π‘Ρ€ΠΈΡ‚Π½ΠΈ Β«EverytimeΒ», JavaScript Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ скобкам ΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌ: Β«Π’Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ ΠΌΠ½Π΅, ΠΊΡ€ΠΎΡˆΠΊΠΈΒ».

Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок. Bracket Pair Colorizer Ρ€Π°Π·ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ скобки Π² ΠΊΠΎΠ΄Π΅ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ, Π° Prettier ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ инструмСнт статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ быстро Π½Π°ΠΉΡ‚ΠΈ ошибки. ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΡ€ΠΎΡ‡Π΅ ΠΈ с минимальной Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сильно ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π²ΠΎΠΎΡ€ΡƒΠΆΠΈΠ²ΡˆΠΈΡΡŒ Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π½Π°Π²Ρ‹ΠΊΠ°ΠΌΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π²Ρ‹ станСтС Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ сильнСС Π² JavaScript, Ρ‡Π΅ΠΌ Π±Ρ‹Π»ΠΈ Π²Ρ‡Π΅Ρ€Π°.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Oops, I did it again: A guide to debugging common JavaScript errors

ΠŸΡ€ΠΎΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Chrome (Ρ‡Π°ΡΡ‚ΡŒ 1) β€” CSS-LIVE

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Improve Your Debugging Skills with Chrome DevTools с сайта telerik.com для css-live.ru, Π°Π²Ρ‚ΠΎΡ€ β€” ΠŸΠΈΡ‚Π΅Ρ€ ΠœΠΈΠ»Ρ‡Π΅Π²

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ ΠΈ совСты ΠΏΠΎ использованию ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Chrome, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³Ρ‡Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π·Π°Π³Π²ΠΎΠ·Π΄ΠΊΠ°ΠΌΠΈ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π‘Ρ‹Π²Π°Π»ΠΈ Π»ΠΈ Ρƒ вас нСприятности с Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ JavaScript? Π”ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π»ΠΈ Π²Π°ΠΌ Π±ΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠ΄Π³ΠΎΠ½ΠΊΠΎΠΉ стилСй элСмСнтов Π½Π° своСй страницС? БСсит Π»ΠΈ вас, ΠΊΠΎΠ³Π΄Π° страницу ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π½Π°Π΄ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… устройствах?

Если ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»ΠΈ Β«Π”Π°Β» хотя Π±Ρ‹ Π½Π° ΠΎΠ΄ΠΈΠ½ вопрос, Ρ‚ΠΎ эта ΡΡ‚Π°Ρ‚ΡŒΡ для вас. Π’ΠΎΡ‚ наши ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ ΠΈ совСты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ всё это ΠΏΠΎΠ±ΠΎΡ€ΠΎΡ‚ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

Π‘ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ Π₯Ρ€ΠΎΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π° Π»Π΅Ρ‚Ρƒ ΠΌΠ΅Π½ΡΡ‚ΡŒ внСшний Π²ΠΈΠ΄ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ AJAX-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Telerik UI для ASP.NET ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… UI-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π²Ρ€ΠΎΠ΄Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Kendo UI. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ совСтов ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΠΎΠ² подходят ΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΌ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΈ ΠΌΡ‹ рассмотрим ΠΈΡ… Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° RadGrid ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Telerik UI для ASP.NET AJAX.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅:

  • ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ сгСнСрированного HTML-ΠΊΠΎΠ΄Π° элСмСнта
  • ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… стилСй
  • Бсылка Π½Π° элСмСнт управлСния Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
  • АвтодополнСниС IntelliSense для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
  • ΠžΡ‚Π»Π°Π΄ΠΊΠ° JavaScript
  • Эмуляция отобраТСния Π½Π° мобильном устройствС
  • ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ сСтСвых запросов

ОбновлСниС: Ссли ΠΈΡ‰Π΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ совСты ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΈΠ· этой сСрии.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ сгСнСрированного HTML-ΠΊΠΎΠ΄Π° элСмСнта

Иногда ΠΏΡ€ΠΈ использовании Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… элСмСнтов ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ структуру сгСнСрированного HTML, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Π΅Π³ΠΎ устройствС ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ минимальной Π΄ΠΎΠ²ΠΎΠ΄ΠΊΠΈ идСально Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, посмотрСв HTML Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Β» Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ Chrome.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ структура элСмСнта ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами:

  • ΠšΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° элСмСнт ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· контСкстного мСню Β«ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ элСмСнт» (Inspect Element). ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Chrome, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ подсвСчСн Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт.
  • ΠšΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ элСмСнт» (Ctrl+Shift+C) с ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Chrome ΠΈ навСсти ΠΌΡ‹ΡˆΡŒΡŽ Π½Π° элСмСнт.
  • ΠšΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° элСмСнт, Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² консоли, ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Β«ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π² ΠΏΠ°Π½Π΅Π»ΠΈ элСмСнтов» (Reveal in Elements panel).

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ 1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сгСнСрированныС DOM-элСмСнты

МалСнькиС хитрости

  • ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π½Π° Π»Π΅Ρ‚Ρƒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ HTML ΠΈ HTML-Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ ΠΊΠ»ΠΈΠΊΠΎΠΌ ΠΏΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ элСмСнта Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Β» (Elements) ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° элСмСнт, Π²Ρ‹Π±Ρ€Π°Π² ΠΈΠ· контСкстного мСню ΠΏΡƒΠ½ΠΊΡ‚ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Β» (Add attribute), Β«Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Β» (Edit attribute) ΠΈΠ»ΠΈ Β«Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ HTMLΒ» (Edit as HTML).
  • МоТно ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ DOM, Π²Ρ‹Π±Ρ€Π°Π² элСмСнт Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Β», Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠ² Π΅Π³ΠΎ Π² Π½ΡƒΠΆΠ½ΠΎΠ΅ мСсто.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… стилСй

Иногда, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π±Π΅Π·ΡƒΠΏΡ€Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° страницы, Π±Ρ‹Π²Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS-ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Ρ€ΠΎΠ΄Π΅ отступов ΠΈΠ»ΠΈ Ρ†Π²Π΅Ρ‚Π°. Π’ ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Β» сбоку Π΅ΡΡ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Β«Π‘Ρ‚ΠΈΠ»ΠΈΒ» (Styles) ΠΈ «ВычислСно» (Computed), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ динамичСски ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ стили, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ элСмСнту Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Β», ΠΈ Π΄Π°ΠΆΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ источник стилСвого ΠΏΡ€Π°Π²ΠΈΠ»Π°. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π»Π΅Π³ΠΊΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ стили, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ/ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ классы (Π²ΠΊΠ»Π°Π΄ΠΊΠ° Β«:clsΒ»), ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ состояния (Π²ΠΊΠ»Π°Π΄ΠΊΠ° Β«:hovΒ»), ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠ΅, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ состояниС ΠΈ состояниС фокуса. Π•Ρ‰Ρ‘ это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ стили испортили раскладку, внСшний Π²ΠΈΠ΄ элСмСнтов ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½ Π² Ρ†Π΅Π»ΠΎΠΌ.

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ 2. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ стили ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΊ DOM-элСмСнтам

МалСнькиС хитрости

  • ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стрСлки ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ/ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ числовыС значСния.
  • ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«ΠΏΠΈΠΏΠ΅Ρ‚ΠΊΡƒΒ» ΠΏΡ€ΠΈ установкС значСния Ρ†Π²Π΅Ρ‚Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… свойствах.

Π’ΠΊΠ»Π°Π΄ΠΊΠ° с вычислСнными значСниями Π΄Π°Ρ‘Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° элСмСнта ΠΏΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ, внСшним отступам ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ.

Бсылка Π½Π° элСмСнт управлСния Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ссылки Π½Π° ваш ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ β€” ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠΉ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΡƒΠΉΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, выявив всС доступныС Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π° Π»Π΅Ρ‚Ρƒ.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ:

  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ HTML-ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ‹Ρ‚, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ сгСнСрированного HTML ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° RadGrid
  • ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ID элСмСнта, класс ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ называСтся Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ)
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ID Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° для ΠΌΠ΅Ρ‚ΠΎΠ΄Π° $find(). ΠœΠ΅Ρ‚ΠΎΠ΄ $find() Π²Π΅Ρ€Π½Ρ‘Ρ‚ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ 3. Бсылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° RadGrid

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ «Бсылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ элСмСнта управлСния Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Β» ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прямо Π² консоли Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

МалСнькиС хитрости

  • $telerik.$(".RadGrid")[0].control Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ссылку Π½Π° клиСнтский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° RadGrid Π½Π° страницС. Π§Π°ΡΡ‚ΡŒ $telerik.$(".RadGrid")[0] Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ искали для получСния Π΅Π³ΠΎ ID.

АвтодополнСниС IntelliSense для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° $find() Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ RadGrid, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² ссылку Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΅Π³ΠΎ API с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ подсказки автодополнСния. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Β«IntelliSenseΒ», Π½ΡƒΠΆΠ½ΠΎ просто ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

МалСнькиС хитрости

  • ↑ ΠΈ ↓ Π² консоли ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ/ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ
  • Ctrl+ΠŸΡ€ΠΎΠ±Π΅Π» ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ мСню с подсказками
  • console.table(objectReference,['index']) Π² консоли пСрСчисляСт всС доступныС свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π’ Google Chrome ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ console., Π° просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ table(objectReference,['index']).

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ 4. ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Api ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Grid ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ подсказки автодополнСния

ΠžΡ‚Π»Π°Π΄ΠΊΠ° JavaScript

Когда ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ страницы, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° каТСтся странным, эти Π½Π°Π²Ρ‹ΠΊΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ, ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это.

Π•ΡΡ‚ΡŒ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² для Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ JavaScript:

  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ debugger; Π² объявлСнии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. К соТалСнию, это слоТнСС со встроСнными функциями Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ всСгда Π΅ΡΡ‚ΡŒ доступ ΠΊ исходному ΠΊΠΎΠ΄Ρƒ.
  • Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ debug(ΡΡΡ‹Π»ΠΊΠ°ΠΠ°Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ) Π² консоли. Π­Ρ‚ΠΎ Ρ€Π°Π²Π½ΠΎΡΠΈΠ»ΡŒΠ½ΠΎ добавлСнию ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° debugger; Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС объявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Chrome. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΊΠΎΠ΄Ρƒ Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈΒ» (Sources) ΠΈ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° Π½ΠΎΠΌΠ΅Ρ€ строки. Π›Π΅Π²Ρ‹ΠΉ ΠΊΠ»ΠΈΠΊ ΠΌΡ‹ΡˆΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Π° ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ (сработаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π΄Π°Π½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ окаТСтся Ρ€Π°Π²Π½ΠΎ true). Π’ΠΎΡ‡ΠΊΠΈ останова ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ вСсьма ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ².

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ 5. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ строки

МалСнькиС хитрости

  • Ошибки JavaScript Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² консоль. ΠžΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ошибки β€” всСгда Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡ…ΡƒΠ΄ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ страницы, Π° Ρ‚ΠΎ ΠΈ ΠΏΠΎΠ»ΠΎΠΌΠ°Ρ‚ΡŒ взаимодСйствиС ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прилоТСния.
  • Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈΒ» Ρ„Π°ΠΉΠ» с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ строку с Π΅Ρ‘ объявлСниСм, ΠΌΠΎΠΆΠ½ΠΎ вывСсти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² консоли ΠΈ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Π½Π΅ΠΉ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ. Π’ΠΎ ΠΆΠ΅ самоС получится, Ссли ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ Β«ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΒ» (Show function definition) ΠΈΠ· контСкстного мСню.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ горячиС клавиши F8 (Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ), F10 (ΠΏΠ΅Ρ€Π΅ΡˆΠ°Π³Π½ΡƒΡ‚ΡŒ) ΠΈ F11 (Π²ΠΎΠΉΡ‚ΠΈ) ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅.
  • ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° строчку ΠΊΠΎΠ΄Π° ΠΈ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ Β«ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ досюда» (Continue to here) β€” это всё Ρ€Π°Π²Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈ сразу ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова послС Π΅Ρ‘ срабатывания
  • ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ тСксту, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ контСкстноС мСню с ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ Β«Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π² консоли» (Evaluate in console) ΠΈ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ тСкст Π² отслСТиваСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹Β» (Add selected text to watches).
  • НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ {}, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² исходном Ρ„Π°ΠΉΠ»Π΅.

Эмуляция отобраТСния Π½Π° мобильном устройствС

Π—Π½Π°ΠΊΠΎΠΌΡ‹ Π»ΠΈ Π²Π°ΠΌ мучСния с ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·Π½Ρ‹Ρ… устройств Ρ€Π°Π΄ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ отобраТСния вашСй страницы Π½Π° мобильном устройствС? Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Β«Π Π΅ΠΆΠΈΠΌ устройств» (Device Mode, ΠΎΠ½ ΠΆΠ΅ Β«ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌΒ») позволяСт Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ сайта Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… экрана, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств для событий касания, ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ устройств ΠΈ Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΡŽ. Π’ ΠΏΡ€ΠΈΠ΄Π°Ρ‡Ρƒ ΠΎΠ½ Π΅Ρ‰Ρ‘ измСняСт строку Β«User-agentΒ», имитируя запрос с мобильного Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

Π“Π»Π°Π²Π½ΠΎΠ΅ здСсь Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ всё это Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ Chrome, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ примСняйтС Π½Π°Π²Ρ‹ΠΊΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΊΠ°ΠΊ ΠΊ сайту Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. И Π½ΠΈΠΊΠ°ΠΊΠΈΡ… устройств ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ Π½Π΅ понадобится.

Π§Ρ‚ΠΎΠ±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π’ΠΊΠ»./Π²Ρ‹ΠΊΠ». Ρ€Π΅ΠΆΠΈΠΌ устройств». Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ страницу.

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ 6. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ устройств

МалСнькиС хитрости

  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, с ΠΊΠ°ΠΊΠΎΠΉ стороны Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΈ эмуляции мобильного устройства Π² ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ β€” справа ΠΈΠ»ΠΈ слСва.
  • Π’ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС Π½Π°Π΄ эмулятором Π΅ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ популярных устройств, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… экранов.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ сСтСвых запросов

Иногда Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса ΠΊ сСрвСру, ΠΈΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅. Для это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ панСль Β«Π‘Π΅Ρ‚ΡŒΒ» (Network).

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ 7. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ сСтСвых запросов

МалСнькиС хитрости

  • Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ XHR-запросов Π² консоли. ΠžΡ‚ этого XHR-запрос Π² консоли станСт Π·Π°ΠΌΠ΅Ρ‚Π½Π΅Π΅, Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΊΠ° ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° этот запрос Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π‘Π΅Ρ‚ΡŒΒ». ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π½Π΅ ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Β«Π‘ΠΊΡ€Ρ‹Ρ‚ΡŒ ΡΠ΅Ρ‚ΡŒΒ» (Hide network)
  • УстановитС Ρ„Π»Π°ΠΆΠΎΠΊ Β«ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ кэш» (Disable the cache). Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с запросами Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ вас ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ сэкономит врСмя, Ссли сдСланныС Π½Π° сСрвСрС измСнСния Π½Π΅ примСнятся Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ способ очистки кэша β€” ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ страницу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ctrl+F5 вмСсто F5.

МоТно ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ соСдинСниС, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ эмулируСт Ρ€Π°Π±ΠΎΡ‚Ρƒ мобильного ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, Π²Ρ‹Π±Ρ€Π°Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡƒΠ½ΠΊΡ‚ Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС «Онлайн» (Online) Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π‘Π΅Ρ‚ΡŒΒ».

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Chrome β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт Π² арсСналС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ познакомились со мноТСством ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡ‘ΠΌΠΎΠ² ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ повысят Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ позволят Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠœΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ Π² Π½ΠΈΡ… Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… внСшний Π²ΠΈΠ΄ Π½Π° Π»Π΅Ρ‚Ρƒ прямо Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

Однако, это лишь малая Ρ‡Π°ΡΡ‚ΡŒ арсСнала Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. КакиС Π΅Ρ‰Ρ‘ инструмСнты ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅? Π‘ΡƒΠ΄Π΅Ρ‚ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Ссли Π²Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ сСкрСтами ΠΈΠ· своСго собствСнного Ρ€Π΅ΠΏΠ΅Ρ€Ρ‚ΡƒΠ°Ρ€Π° Π² коммСнтариях Π½ΠΈΠΆΠ΅.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π½Π°ΡˆΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΈΠ· этой сСрии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ большС хитростСй ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΠΎΠ² ΠΈΠ· Π½Π°ΡˆΠΈΡ… собствСнных ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

P.S. Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ интСрСсно:

Как ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ JavaScript

ΠžΡ‚Π»Π°Π΄ΠΊΠ° β€” ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π½Π°Π²Ρ‹ΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΊΠΎΠ΄ΠΎΠΌ JavaScript.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь ΠΌΡ‹ просыпаСмся, Π·Π°Π²Ρ‚Ρ€Π°ΠΊΠ°Π΅ΠΌ, ΠΈΠ΄Π΅ΠΌ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ ΠΈ сидим Ρ‚Π°ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ.

ΠŸΠΎΡ‚ΠΎΠΌ просыпаСмся.

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ идСально, Π²Π΅Ρ€Π½ΠΎ? Но это Π±Ρ‹Π» сон.

Как Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΈ Π²Ρ‹ Π½ΠΈ Π±Ρ‹Π»ΠΈ, Π²Ρ‹ Π½Π΅ смоТСтС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±Π΅Π· ошибок. Π’ ΠΊΠΎΠ΄Π΅ Π΅ΡΡ‚ΡŒ ошибки. По ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ.

Ошибка β€” это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ ΠΈΠ»ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° приступали ΠΊ написанию ΠΊΠΎΠ΄Π°.

Ошибка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ выпускаСтС свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈ это Ρ…ΡƒΠ΄ΡˆΠ°Ρ ситуация.

ΠžΡˆΠΈΠ±ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ тСстируСтС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈ это ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°ΠΆΠ΅ ΡΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° всС, Ρ‡Ρ‚ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ идСально, Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π»ΠΎΠΌΠ°Ρ‚ΡŒΡΡ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΎΠ΄Π½Ρƒ строку.

Π­Ρ‚ΠΎ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ рСгрСссионныС ошибки.

Ошибки ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ нашСй повсСднСвной ΠΆΠΈΠ·Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π½ΠΎ наша Π·Π°Π΄Π°Ρ‡Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ свСсти ΠΈΡ… ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° проста, Ссли Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с ошибками.

Как Π²Ρ‹ ΡΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ с ошибками?

Ну, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΡΡ‚Π°Ρ€Π°ΡΡΡŒ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΈΡ…, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ думая ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π΅Ρ‰Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ хотя Π±Ρ‹ ΠΎΠ΄Π½Ρƒ строчку ΠΊΠΎΠ΄Π°.

Π—Π°Ρ‚Π΅ΠΌ, ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π²Π°ΠΌΠΈ строку ΠΊΠΎΠ΄Π° Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов ΠΈΠ»ΠΈ Π½Π΅ΡƒΡ‡Ρ‚Π΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ².

Но Π²Π΅Ρ‰ΠΈ всСгда ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅Π·Π°ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ. Никто Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π±Π°Π³ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ. Часто ошибки ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° находится Π² производствС ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ.

И… ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ± ошибкС, ΠΊΠ°ΠΊ Π²Ρ‹ Π΅Π΅ Ρ€Π΅ΡˆΠΈΡ‚Π΅?

Π§Ρ‚ΠΎ ΠΆ, самоС слоТноС β€” всСгда ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΎΡ‚ΠΊΡƒΠ΄Π° взялась ошибка.

Π—Π°Ρ‚Π΅ΠΌ вторая самая слоТная Ρ‡Π°ΡΡ‚ΡŒ β€” Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ эта ошибка.

Π£ΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π»Π΅Π³ΠΊΠΎ, Ссли Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ всС Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Один ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² являСтся ΠΎΡ‡Π΅Π½ΡŒ простым ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ значСния состояния (содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…) ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ вывСсти эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² ΠΆΡƒΡ€Π½Π°Π»Ρ‹ ΠΈΠ»ΠΈ Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ВыяснСниС Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ошибка

ΠžΡ‚Π»Π°Π΄ΠΊΠ° β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚Π΅Ρ… Π½Π°Π²Ρ‹ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ Π² Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ программиста.

Иногда ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ всС, Ρ‡Ρ‚ΠΎ Π² Π½Π°ΡˆΠΈΡ… силах, Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ°Π΄Π°Π΅Ρ‚, просто Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π½Π΅Π²Π΅Ρ€Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли написанная Π²Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Π΅Π΄Π΅Ρ‚ сСбя Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅?

Π’Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом всСгда являСтся ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ происходит, ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ источник ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² срСдС?

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²Π²Π΅Π»ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ?

Π­Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΉ сбой ΠΈΠ·-Π·Π° слишком большого использования памяти?

Или это происходит ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС?

Π­Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ информация, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈ выяснСнии ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ этой ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ части ΠΊΠΎΠ΄Π°.

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния инструмСнтов, β€” это Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ написали. Вслух.

Π•ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ волшСбноС Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ собствСнный голос, Ρ‡Π΅Π³ΠΎ Π½Π΅ происходит, ΠΊΠΎΠ³Π΄Π° Ρ‡ΠΈΡ‚Π°Π΅ΡˆΡŒ Π² Ρ‚ΠΈΡˆΠΈΠ½Π΅.

Часто я Π½Π°Ρ…ΠΎΠ΄ΠΈΠ» ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ПослС этого шага ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ инструмСнты.

Если Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½ΠΈΡ‡Π΅Π³ΠΎ для вас Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΎ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ логичСским шагом Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ»ΠΈΡ‚ΡŒ свСт.

Π’ ΠΊΠΎΠ΄Π΅ внСшнСго интСрфСйса JavaScript Π²Ρ‹ часто Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ alert() ΠΈ console.log .

Рассмотрим эту строку:

 const a = calculateA()
константа b = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒB()
постоянный Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = a + b
 

По ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ нСизвСстной Π½Π°ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠΎΠ΄Π° вычисляСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, поэтому ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с добавлСния alert(a) ΠΈ alert(b) ΠΏΠ΅Ρ€Π΅Π΄ вычислСниСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π΄Π²Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°:

 const a = calculateA()
константа b = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒB()
ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅ (Π°)
ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅ (Π±)
постоянный Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = a + b
 

Π­Ρ‚ΠΎ прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ссли Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ alert() строку ΠΈΠ»ΠΈ число.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ массив ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, всС становится слишком слоТным для alert() , ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ console.log() :

 const a = calculateA()
константа b = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒB()
console.log(Π°)
console.log(Π±)
постоянный Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = a + b
 

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСчатаСтся Π² консоли JavaScript инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

ΠžΡΠΌΠΎΡ‚Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ car , Π½ΠΎ ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ Π΅Π³ΠΎ содСрТимого ΠΈ Ρ…ΠΎΡ‚ΠΈΠΌ Π΅Π³ΠΎ ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ:

 const car = {
  Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚",
  ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ: Β«Π€ΠΎΡ€Π΄Β»,
  модСль: "ЀиСста",
}
 

Π£ нас Π΅ΡΡ‚ΡŒ нСсколько способов ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это.

console. log
 console.log(car)
 

console.dir
 console.dir(car)
 

Π’ Node.js Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство colors для отобраТСния Ρ†Π²Π΅Ρ‚ΠΎΠ² Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:

 console.dir(car, {colors: true})
 

JSON.stringify()

Π­Ρ‚ΠΎ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠ°ΠΊ строковоС прСдставлСниС:

 JSON.stringify(car)
 

Π”ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

 JSON.stringify(car, null, 2)
 

Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ пСчатался Π±ΠΎΠ»Π΅Π΅ красиво. ПослСднСС число опрСдСляСт количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² отступС:

JSON.stringify() ΠΈΠΌΠ΅Π΅Ρ‚ прСимущСство Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π½Π΅ консоли, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° экранС.

ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ свойств с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π°

Π¦ΠΈΠΊΠ» for...in ΡƒΠ΄ΠΎΠ±Π΅Π½ для Π²Ρ‹Π²ΠΎΠ΄Π° всСх свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

 const inspect = (obj) => {
  for (const prop in obj) {
    Ссли (obj. hasOwnProperty (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚)) {
      console.log(`${prop}: ${obj[prop]}`)
    }
  }
}
ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ (Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ)
 

ИспользованиС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°

ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅.

Одним ΠΈΠ· инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΡ€ΠΈ выяснСнии источника ошибок, являСтся использованиС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°.

ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ β€” это инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдоставлСн Π»ΠΈΠ±ΠΎ вашим компилятором языка программирования, Π»ΠΈΠ±ΠΎ инструмСнтами, построСнными Π²ΠΎΠΊΡ€ΡƒΠ³ Π½Π΅Π³ΠΎ.

НапримСр, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Visual Studio ΠΎΡ‚ Microsoft прСдоставляСт ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ JavaScript.

Π’Π½ΡƒΡ‚Ρ€ΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° имССтся Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π²Ρ‹ смоТСтС Π² любоС врСмя ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ любой ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ΠΈ пошагово Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΊΠΎΠ΄Π° Π·Π° Ρ€Π°Π·.

Π’ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° debugger ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ приостановит ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ страницы Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ ΠΈ запустит ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ β€” самый ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт Π² инструмСнтах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Он находится Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ :

Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части экрана отобраТаСтся Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ².

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любой Ρ„Π°ΠΉΠ» ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ справа. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ для установки Ρ‚ΠΎΡ‡Π΅ΠΊ останова, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅.

НиТняя Ρ‡Π°ΡΡ‚ΡŒ β€” собствСнно ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

Π’ΠΎΡ‡ΠΊΠΈ останова

Когда Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ страницу, ΠΊΠΎΠ΄ JavaScript выполняСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ достигнута Ρ‚ΠΎΡ‡ΠΊΠ° останова.

Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ останавливаСтся, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ касаСтся вашСй Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ построчно.

Но сначала, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚ΠΎΡ‡ΠΊΠ° останова? Π’ своСй простой Ρ„ΠΎΡ€ΠΌΠ΅ Ρ‚ΠΎΡ‡ΠΊΠ° останова β€” это инструкция Ρ‚ΠΎΡ‡ΠΊΠΈ останова , помСщСнная Π² ваш ΠΊΠΎΠ΄. Когда Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ встрСчаСт Π΅Π³ΠΎ, ΠΎΠ½ останавливаСтся.

Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈΒ» ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ строки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова:

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΏΠΎ Ρ‚ΠΎΡ‡ΠΊΠ΅ останова ΡƒΠ΄Π°Π»ΠΈΡ‚ Π΅Π΅.

ПослС добавлСния Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ страницу, ΠΈ ΠΊΠΎΠ΄ остановится Π² этой Ρ‚ΠΎΡ‡ΠΊΠ΅ выполнСния, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΉΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ останова.

Когда Π²Ρ‹ добавляСтС Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Breakpoints , Ρ‡Ρ‚ΠΎ form.js Π² строкС 7 ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ останова. Π’Π°ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС свои Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ….

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ‚ΠΎΡ‡Π΅ΠΊ останова:

  • Π’ΠΎΡ‡ΠΊΠΈ останова XHR/Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ : срабатываСт ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ любого сСтСвого запроса
  • Π’ΠΎΡ‡ΠΊΠΈ останова DOM : срабатываСт ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ элСмСнта DOM
  • Π’ΠΎΡ‡ΠΊΠΈ останова ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Ρ событий : срабатываСт, ΠΊΠΎΠ³Π΄Π° происходит ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ событиС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΌΡ‹ΡˆΡŒΡŽ

ОбъСм

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я установил Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Ρ событий, поэтому ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π΅:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‚ΡΡ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, находящиСся Π² области видимости, с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΈΡ….

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ выраТСния Watch

Π‘ΠΏΡ€Π°Π²Π° ΠΎΡ‚ ΠΏΠ°Π½Π΅Π»ΠΈ Scope находится панСль Watch .

Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ + , ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для добавлСния любого выраТСния. НапримСр, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ name Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ name , Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Flavio . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ name.toUpperCase() , ΠΈ ΠΎΠ½ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ FLAVIO :

Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС сцСнарии остановлСны, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ° останова остановила Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

Над Π±Π°Π½Π½Π΅Ρ€ΠΎΠΌ Β«ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ останова» Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это состояниС.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ синий. НаТатиС Π½Π° Π½Π΅Π΅ возобновляСт Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта.

Вторая ΠΊΠ½ΠΎΠΏΠΊΠ° шаг Π·Π° , ΠΈ ΠΎΠ½Π° возобновляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки ΠΈ снова останавливаСтся.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° выполняСт шаг Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ : ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ выполняСмой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, позволяя Π²Π°ΠΌ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π² Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ.

Π’Ρ‹Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½: возвращаСтся ΠΊ внСшнСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ эту.

Π­Ρ‚ΠΎ основныС способы управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π²ΠΎ врСмя ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрипты

На этом экранС devtools Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ любой скрипт, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° скрипт остановлСн Π² своСм Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ cmd-S Π½Π° Mac ΠΈΠ»ΠΈ ctrl-S Π½Π° Windows/Linux.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, измСнСния Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° диск, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ локально ΠΈ Π½Π΅ настроили Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ пространства Π² devtools, Ρ‡Ρ‚ΠΎ являСтся Π±ΠΎΠ»Π΅Π΅ слоТной Ρ‚Π΅ΠΌΠΎΠΉ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²

Π‘Ρ‚Π΅ΠΊ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π½Π° ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… уровнях Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ Π² ΠΊΠΎΠ΄Π΅ JavaScript. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π²Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ стСку, щСлкая имя ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Π Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ трассировку стСка

ΠœΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ случаи, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ трассировку стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° вопрос ΠΊΠ°ΠΊ Π²Ρ‹ Π΄ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Π΄ΠΎ этой части ΠΊΠΎΠ΄Π°?

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ console. trace() :

 const function2 = () => console.trace()
константная функция1 = () => функция2()
функция1()
 

Как ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ€Π°Π½Π΅Π΅, console.log ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ сообщСний Π² консоли.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌ Π΅Ρ‰Π΅ Ρ‚Ρ€ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΌ Π² ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ нСявно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ ошибок.

ΠŸΠ΅Ρ€Π²Π°Ρ, console.info()

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, рядом с Π½ΠΈΠΌ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π° малСнькая Π±ΡƒΠΊΠ²Π° Β«iΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ ясно, Ρ‡Ρ‚ΠΎ сообщСниС ΠΆΡƒΡ€Π½Π°Π»Π° β€” это просто информация.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ, console.warn()

ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ.

Если Π²Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ панСль инструмСнтов Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Консоли, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Консоль позволяСт Π²Π°ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСния ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ, поэтому ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ сообщСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли ΠΌΡ‹ сСйчас Π½Π°ΠΆΠΌΠ΅ΠΌ Β«ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡΒ», всС Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹Π΅ сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдупрСТдСния Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ скрыты.

Π’Ρ€Π΅Ρ‚ΡŒΡ функция β€” console. error()

, ΠΎΠ½Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отличаСтся ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° красного крСстика, ясно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибки, Ρƒ нас Π΅ΡΡ‚ΡŒ полная трассировка стСка Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅ΠΉ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ошибка, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΉΡ‚ΠΈ ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ Π²ΠΎ врСмя Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ

БообщСния консоли ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ страницС, Ссли Π²Ρ‹ Π½Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π» Π² настройках консоли:

Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° сообщСний консоли

БообщСния консоли ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅, Π° ΡˆΡƒΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ошибки ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, API консоли ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ: Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° сообщСний консоли.

Π”Π°Π²Π°ΠΉΡ‚Π΅ сначала сдСлаСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

 console.group('ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° мСстополоТСния')
console.log('Π₯эш мСстополоТСния', location.hash)
console.log('Имя хоста мСстополоТСния', location.hostname)
console.log('ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» мСстополоТСния', location. protocol)
console.groupEnd()
 

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Консоль создаСт Π³Ρ€ΡƒΠΏΠΏΡƒ, ΠΈ Ρ‚Π°ΠΌ Ρƒ нас Π΅ΡΡ‚ΡŒ сообщСния ΠΆΡƒΡ€Π½Π°Π»Π°.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС, Π½ΠΎ вывСсти свСрнутоС сообщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠΎ запросу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‰Π΅ большС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΡˆΡƒΠΌ:

 console.groupCollapsed('ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° мСстополоТСния')
console.log('Π₯эш мСстополоТСния', location.hash)
console.log('Имя хоста мСстополоТСния', location.hostname)
console.log('ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» мСстополоТСния', location.protocol)
console.groupEnd()
 

ΠŸΡ€ΠΈΡΡ‚Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ эти Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ

 console.group('Главная')
console.log('ВСст')
console.group('1')
console.log('1 тСкст')
console.group('1a')
console.log('1a тСкст')
console.groupEnd()
console.groupCollapsed('1b')
console.log('1b тСкст')
console.groupEnd()
console.groupEnd()
 

Blackbox scripts

Часто Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Β«Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΒ», Π²Ρ‹ ΠΈΠΌ довСряСтС ΠΈ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΡ… ΠΊΠΎΠ΄ Π² стСкС Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Как ΠΈ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ случаС для validator.min.js , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹.

Π― Π²Π΅Ρ€ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ справляСтся со своСй Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, поэтому я ΠΌΠΎΠ³Ρƒ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π² стСкС Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Blackbox . Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΉΡ‚ΠΈ Π² этот ΠΊΠΎΠ΄ скрипта, ΠΈ Π²Ρ‹ с Ρ€Π°Π΄ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π΄ своим собствСнным ΠΊΠΎΠ΄ΠΎΠΌ прилоТСния.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Node.js

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Node.js построСн Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ Π΄Π²ΠΈΠΆΠΊΠ΅ Chrome, v8, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ 2 ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Chrome DevTools для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Node.js.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ запуститС

 node --inspect
 

Π—Π°Ρ‚Π΅ΠΌ Π² Chrome Π²Π²Π΅Π΄ΠΈΡ‚Π΅ этот URL-адрСс: about://inspect .

Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ссылку ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ DevTools for Node рядом с Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ, ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ Node.js Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. , Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ этот инструмСнт автоматичСски ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ экзСмпляру Node. js ΠΏΡ€ΠΈ Π΅Π³ΠΎ пСрСзапускС β€” ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ!

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΌΠΎΠΉ бСсплатный справочник ΠΏΠΎ JavaScript!

Настройка ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° JavaScript | WebStorm

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠΎΠ΄Π° JavaScript поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Google Chrome ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… Π½Π° основС Chromium.

WebStorm прСдоставляСт встроСнный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ для клиСнтского ΠΊΠΎΠ΄Π° JavaScript. ВстроСнный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ запускаСтся автоматичСски ΠΏΡ€ΠΈ запускС сСанса ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Для обСспСчСния ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚ встроСнного Π²Π΅Π±-сСрвСра ΠΈ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ WebStorm ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ

  • Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² настройках Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ JavaScript Debugger. НаТмитС Ctrl+Alt+S , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ настройки IDE ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ «УстановлСно». Π’ ΠΏΠΎΠ»Π΅ поиска Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ JavaScript. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… модулях см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΌΠΈ модулями.

УстановитС ΠΏΠΎΡ€Ρ‚ встроСнного Π²Π΅Π±-сСрвСра

  1. НаТмитС Ctrl+Alt+S , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ настройки IDE, ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Build, Execution, Deployment | ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

  2. Π’ области ВстроСнный сСрвСр ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΠΎΡ€Ρ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ встроСнный Π²Π΅Π±-сСрвСр. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для этого ΠΏΠΎΡ€Ρ‚Π° Π·Π°Π΄Π°Π½ стандартный ΠΏΠΎΡ€Ρ‚ WebStorm 63342, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ WebStorm ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚ слуТб. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π° Π½Π° любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, начиная с 1024.

ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ

  • ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ настройки, Π½Π°ΠΆΠ°Π² Ctrl+Alt+S , ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Build, Execution, Deployment | ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ. ΠŸΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ обращСния ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ Π½Π° встроСнном сСрвСрС с Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ·-Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ² WebStorm, сняв Ρ„Π»Π°ΠΆΠΎΠΊ Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ внСшниС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ нСподписанныС запросы соотвСтствСнно.

  • Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ способ удалСния Ρ‚ΠΎΡ‡Π΅ΠΊ останова, настройка ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ.

  • ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ настройки, Π½Π°ΠΆΠ°Π² Ctrl+Alt+S , ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Build, Execution, Deployment | ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ | ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ…. На страницС ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… настройтС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°: Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ подсказки со значСниями ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ ΠΎΡ†Π΅Π½ΠΊΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ‚. Π΄.

  • Π’ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅. Шаговая страница, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ сцСнарии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ.

    По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π½Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΌ сцСнариям. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ список подавлСния, установитС Ρ„Π»Π°ΠΆΠΎΠΊ НС Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² скрипты ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ URL-адрСса для пропуска с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Β ΠΈ .

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ начинаСтся Π² Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Chrome вмСсто Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠΊΠ½ΠΎ выглядит Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ваши Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ, история Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ ваш ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ WebStorm ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Chrome ΠΈ запускаСт Chrome с --remote-debugging-port опция. Однако, Ссли Chrome ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΏΠΎΡ€Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ для любого Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ экзСмпляра Chrome с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Chrome, WebStorm всСгда запускаСт сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр Chrome со Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ внСшним Π²ΠΈΠ΄ΠΎΠΌ, настройтС Chrome Π² WebStorm для запуска с вашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ этом случаС ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ сСанса ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ всСгда провСряйтС, Ρ‡Ρ‚ΠΎ Chrome Π΅Ρ‰Π΅ Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ с вашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС WebStorm ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ запускаСт Π΄Ρ€ΡƒΠ³ΠΎΠΉ экзСмпляр Chrome с вашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ для Π½Π΅Π³ΠΎ ΠΏΠΎΡ€Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ WebStorm Π½Π΅ удаСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π² Π½ΠΎΠ²ΠΎΠΌ экзСмплярС Chrome, ΠΈ сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π΅ запускаСтся.

НастройтС Chrome Π² WebStorm для запуска с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Chrome

  1. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Chrome Π² любом мСстС Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

  2. НаТмитС Ctrl+Alt+S , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ настройки IDE, ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ | Π’Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр.

  3. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Chrome, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ . Π’ спискС появится Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт. Π’ ΠΏΠΎΠ»Π΅ ΠŸΡƒΡ‚ΡŒ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ установки Chrome.

  4. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ().

  5. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «Настройки ChromeΒ» установитС Ρ„Π»Π°ΠΆΠΎΠΊ Β«Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΒ» ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Π² настройках WebStorm.

  6. ΠžΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Chrome ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠ°ΠΊ описано Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π’Ρ‹Π±ΠΎΡ€ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° WebStorm ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈΠ· списка Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΡ€ΠΈ создании ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ запуска/ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

    Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ всСгда Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ эту ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Chrome ΠΈΠ· списка Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ².

ПослСднСС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: 06 сСнтября 2022 Π³.

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ консоль ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ΠžΡ‚Π»Π°Π΄ΠΊΠ° JavaScript, Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ³ΠΎ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС

Настройка ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° JavaScript | PyCharm

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠΎΠ΄Π° JavaScript поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Google Chrome ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… Π½Π° Π±Π°Π·Π΅ Chromium.

PyCharm прСдоставляСт встроСнный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ для клиСнтского ΠΊΠΎΠ΄Π° JavaScript. ВстроСнный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ запускаСтся автоматичСски ΠΏΡ€ΠΈ запускС сСанса ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΡƒΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚ встроСнного Π²Π΅Π±-сСрвСра ΠΈ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ PyCharm для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°.

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹

  1. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² настройках Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ JavaScript ΠΈ TypeScript. НаТмитС Ctrl+Alt+S , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ настройки IDE ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ «УстановлСно». Π’ ΠΏΠΎΠ»Π΅ поиска Π²Π²Π΅Π΄ΠΈΡ‚Π΅ JavaScript ΠΈ TypeScript. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… модулях см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΌΠΈ модулями.

  2. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² настройках Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ JavaScript Debugger. НаТмитС Ctrl+Alt+S , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ настройки IDE ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ «УстановлСно». Π’ ΠΏΠΎΠ»Π΅ поиска Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ JavaScript. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… модулях см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΌΠΈ модулями.

УстановитС ΠΏΠΎΡ€Ρ‚ встроСнного Π²Π΅Π±-сСрвСра

  1. НаТмитС Ctrl+Alt+S , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ настройки IDE, ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Build, Execution, Deployment | ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

  2. Π’ области ВстроСнный сСрвСр ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΠΎΡ€Ρ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ встроСнный Π²Π΅Π±-сСрвСр. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ этот ΠΏΠΎΡ€Ρ‚ установлСн Π½Π° ΠΏΠΎΡ€Ρ‚ PyCharm ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 63342, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ PyCharm ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚ слуТб. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π° Π½Π° любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, начиная с 1024.

ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ

  • ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ настройки, Π½Π°ΠΆΠ°Π² Ctrl+Alt+S , ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Build, Execution, Deployment | ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ. ΠŸΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° встроСнном сСрвСрС с Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ·-Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ² PyCharm, сняв Ρ„Π»Π°ΠΆΠΎΠΊ ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ внСшниС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ нСподписанныС запросы соотвСтствСнно.

  • Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ способ удалСния Ρ‚ΠΎΡ‡Π΅ΠΊ останова, настройка ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ.

  • ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ настройки, Π½Π°ΠΆΠ°Π² Ctrl+Alt+S , ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Build, Execution, Deployment | ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ | ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ…. На страницС ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… настройтС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°: Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ подсказки со значСниями ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ ΠΎΡ†Π΅Π½ΠΊΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ‚. Π΄.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ начинаСтся Π² Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Chrome вмСсто Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠΊΠ½ΠΎ выглядит Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ваши Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ, история Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ ваш ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ PyCharm ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Chrome ΠΈ запускаСт Chrome с --remote-debugging-port опция. Однако, Ссли Chrome ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΏΠΎΡ€Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ для любого Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ экзСмпляра Chrome с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Chrome, PyCharm всСгда запускаСт сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр Chrome со Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ Π²Π°ΠΌ внСшним Π²ΠΈΠ΄ΠΎΠΌ, настройтС Chrome Π² PyCharm, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ с Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этом случаС ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ сСанса ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ всСгда провСряйтС, Ρ‡Ρ‚ΠΎ Chrome Π΅Ρ‰Π΅ Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ с вашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС PyCharm ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ запускаСт Π΄Ρ€ΡƒΠ³ΠΎΠΉ экзСмпляр Chrome с вашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ для Π½Π΅Π³ΠΎ ΠΏΠΎΡ€Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ PyCharm Π½Π΅ удаСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π² Π½ΠΎΠ²ΠΎΠΌ экзСмплярС Chrome, ΠΈ сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π΅ запускаСтся.

НастройтС Chrome Π² PyCharm, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ с Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Chrome

  1. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ваши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Chrome Π² любом мСстС Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

  2. НаТмитС Ctrl+Alt+S , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ настройки IDE, ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ | Π’Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр.

  3. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Chrome, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ . Π’ спискС появится Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт. Π’ ΠΏΠΎΠ»Π΅ ΠŸΡƒΡ‚ΡŒ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ установки Chrome.

  4. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ().

  5. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «Настройки ChromeΒ» установитС Ρ„Π»Π°ΠΆΠΎΠΊ Β«Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΒ» ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² настройках PyCharm.

  6. ΠžΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Chrome ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠ°ΠΊ описано Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π’Ρ‹Π±ΠΎΡ€ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° PyCharm ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈΠ· списка Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΡ€ΠΈ создании ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ запуска/ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

    Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ всСгда Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ эту ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Chrome ΠΈΠ· списка Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ².

ПослСднСС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: 06 сСнтября 2022 Π³.

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ консоль ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ΠžΡ‚Π»Π°Π΄ΠΊΠ° JavaScript, Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ³ΠΎ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС

ЭффСктивная ΠΎΡ‚Π»Π°Π΄ΠΊΠ° JavaScript с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Chrome DevTools ? Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΡ‚Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ эффСктивным ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Chrome DevTools.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Chrome DevTools?Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ссылку

Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ Google Chrome ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ встроСнныС инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (Ρ‚Π°ΠΊΠΆΠ΅ извСстныС ΠΊΠ°ΠΊ DevTools), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ прямо Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова для обнаруТСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ Π±ΠΎΠ»Π΅Π΅ быстрой ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π°.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°Π½Π΅Π»ΠΈ DevToolsΠ‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ссылку

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс DevTools ΠΈΠΌΠ΅Π΅Ρ‚ Π² ΠΎΠ±Ρ‰Π΅ΠΉ слоТности 8 ΠΏΠ°Π½Π΅Π»Π΅ΠΉ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π² основном Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСна панСль Β«Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈΒ», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ.

Π’ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ каТдая панСль.

  1. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠ·Π»ΠΎΠ² DOM ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² стиля
  2. Консоль: просмотр ΠΈ запуск ΠΊΠΎΠ΄Π° JavaScript
  3. Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ: ΠΎΡ‚Π»Π°Π΄ΠΊΠ° JavaScript, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡Π΅ΠΊ останова ΠΈ Ρ‚. Π΄.
  4. Π‘Π΅Ρ‚ΡŒ: просмотр ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° сСтСвых дСйствий
  5. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: Π°Π½Π°Π»ΠΈΠ· скорости ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ
  6. ΠŸΠ°ΠΌΡΡ‚ΡŒ: отслСТиваниС использования памяти ΠΈ устранСниС связанных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ
  7. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° localStorage, sessionStorage, Ρ„Π°ΠΉΠ»ΠΎΠ² cookie, IndexDB ΠΈ Ρ‚. Π΄.
  8. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: сСртификат ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ бСзопасности
  9. Lighthouse: Π°ΡƒΠ΄ΠΈΡ‚ качСство прилоТСния, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ, SEO ΠΈ Ρ‚. Π΄.

ИспользованиС DevTools (сочСтания клавиш) Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ссылку

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ панСль DevTools Elements, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Command + Option + C для Mac ΠΈ CTRL + SHIFT + C для любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ОБ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ панСль консоли DevTools, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Command + Option + J для Mac ΠΈ CTRL + SHIFT + J для любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ОБ.

Как ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ JavaScript с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DevToolsΠ‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ссылку

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ DevTools, Π΄Π°Π²Π°ΠΉΡ‚Π΅ обсудим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ стратСгии ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ для Π±ΠΎΠ»Π΅Π΅ эффСктивной ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ способы достиТСния этого с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DevTools.

1. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΡΡ‚Π°Π½ΠΎΠ²Π°Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ссылку

Π’ΠΎΡ‡ΠΊΠΈ останова ΠΏΠΎΠ»Π΅Π·Π½Ρ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ ваш ΠΊΠΎΠ΄, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ строку Π·Π° строкой ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π°Π· ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ источник ошибки.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ссылки BreakpointCopy

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ‚ΠΎΡ‡ΠΊΡƒ останова строки ΠΊΠΎΠ΄Π°.

1) Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ панСль источников DevTools.

2) НаТмитС Π½Π° Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .js, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​точка останова. Код Ρ„Π°ΠΉΠ»Π° .js появится Π½Π° срСднСй ΠΏΠ°Π½Π΅Π»ΠΈ.

3) Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ строку, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова».

4) Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΠ½Π° приостанавливаСтся прямо ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ запроса POST. И я Π²ΠΈΠΆΡƒ Π΄Π°Π½Π½Ρ‹Π΅ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ΡΡ.

ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° являСтся ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ способом ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π° Π½Π΅ console.log(data) ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страниц.

Когда всС Π±ΡƒΠ΄Π΅Ρ‚ Π² порядкС, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ возобновлСния Π½Π° страницС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΡƒΠ·Ρƒ.

БущСствуСт мноТСство Ρ‚ΠΈΠΏΠΎΠ² Ρ‚ΠΎΡ‡Π΅ΠΊ останова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DevTools. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅ прСдставляСт собой сводку всСх доступных Ρ‚ΠΈΠΏΠΎΠ² Ρ‚ΠΎΡ‡Π΅ΠΊ останова.

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ.

2. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€/внСсСниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅, Π·Π°ΠΌΡ‹ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ссылку

Пока ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ приостановлСно, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅, Π·Π°ΠΌΡ‹ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ свойства. НапримСр, Ρƒ вас Π΅ΡΡ‚ΡŒ ошибка, которая Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, поэтому Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ПослС добавлСния Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΠΏΡ€Π°Π²ΡƒΡŽ панСль. Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ панСль Β«ΠžΠ±Π»Π°ΡΡ‚ΡŒΒ» ΠΈ просмотритС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, эта панСль Π΄Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для исправлСния ошибок.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ значСниями, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для рСдактирования.

3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, сохранСниС ΠΈ запуск ΡΠ½ΠΈΠΏΠΏΠ΅Ρ‚ΠΎΠ²Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ссылку

Π”Ρ€ΡƒΠ³ΠΎΠΉ эффСктивной стратСгиСй являСтся использованиС сниппСтов. Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сцСнарии Π² любой части вашСго прилоТСния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² мСню Β«Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹Β» Π½Π° Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.

На ΠΏΠ°Π½Π΅Π»ΠΈ Snippets Π½Π°ΠΆΠΌΠΈΡ‚Π΅ + New Snippets ΠΈ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π² срСднСй ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС Π½ΠΈΠΆΠ΅.

Π—Π°Ρ‚Π΅ΠΌ сохранитС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Command + S Π½Π° Mac ΠΈΠ»ΠΈ CTRL + S Π½Π° любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ОБ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… дСйствий:

1) Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ». 0082 Π½Π° любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ОБ.

4. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ссылку

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎ асинхронных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния Π² стСкС Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ошибки.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ панСль Β«Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ DevToolsΒ» ΠΈ Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ панСль Β«Π‘Ρ‚Π΅ΠΊ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² стСкС Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

5. BlackboxingΠ‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ссылку

ΠŸΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ Π²Ρ‹, вСроятно, Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сцСнариСв. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ скрипты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ мнСнию, Π½Π΅ связаны с ошибкой.

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… построчно Π² своСм ΠΊΠΎΠ΄Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² DevTools.

Для этого Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» сцСнария, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π° Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈΒ». Π—Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΡΡ€Π΅Π΄Π½ΡŽΡŽ панСль ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ скрипт Π² список игнорирования» .

Π’Π΅ΠΏΠ΅Ρ€ΡŒ этот сцСнарий Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΡΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΡ€ΡƒΠ³ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ошибки ΠΈΠ»ΠΈ ошибки.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Chrome DevTools Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС. Π― Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ ссылкам Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «РСсурсы» Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΎΡΠ²ΠΎΠΈΡ‚Π΅ΡΡŒ, Π²Ρ‹ станСтС Π±ΠΎΠ»Π΅Π΅ эффСктивным ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ, ΠΈ ваши Π΄Π½ΠΈ бСсконСчной console.log() ΡƒΠΉΠ΄ΡƒΡ‚ Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ.

Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Π― надСюсь, Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ, Ссли это Ρ‚Π°ΠΊ, ΠΈ Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ вопросы Π² коммСнтариях Π½ΠΈΠΆΠ΅. Π’Π°ΡˆΠ΅ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅!


  • Π’ΠΈΠ΄Π΅ΠΎ: ΠžΡ‚Π»Π°Π΄ΠΊΠ° JavaScript β€” Chrome DevTools 101
  • Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Chrome DevTools: ΠžΡ‚Π»Π°Π΄ΠΊΠ° JavaScript
  • Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Chrome DevTools: Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ JavaScript

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Javascript

Как Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΌΡ‹ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ искорСняли ошибки Π² Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… (с этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ошибками , Ссли ΠΌΠΎΠΆΠ½ΠΎ), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ осмыслСнныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΆΡƒΡ€Π½Π°Π»Π° . Для этого Π² JavaScript Π΅ΡΡ‚ΡŒ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ console.log() .

Но хотя ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΆΡƒΡ€Π½Π°Π»Π° Ρ…ΠΎΡ€ΠΎΡˆΠΈ, ΠΎΠ½ΠΈ ΠΌΠ΅Π½Π΅Π΅ эффСктивны, Ρ‡Π΅ΠΌ инструмСнт, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΡƒΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. Π˜Ρ‚Π°ΠΊ, Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Google Chrome (Ρ‚Π°ΠΊΠΆΠ΅ извСстныС ΠΊΠ°ΠΊ DevTools ) для Π»Π΅Π³ΠΊΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ любого прилоТСния JavaScript.

Одна ΠΈΠ· Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… особСнностСй использования DevTools Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ поставщики Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Firefox ΠΈ Microsoft) ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ свои собствСнныС инструмСнты для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ прилоТСния JavaScript, ΠΈ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнт ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

ВзглянитС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Greet Me . Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ JavaScript Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ вашС имя ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Β«ΠΆΠ΅Π»Π°Π½ΠΈΠ΅Β», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для доставки вашСго собствСнного пСрсонализированного привСтствия.

Рисунок 1: ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Greet Me ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ

Но ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, здСсь Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ сообщСниС Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ поТСлания. Он вставляСт ΠΌΠΎΡˆΠ΅Π½Π½ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ слово NaN . К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Chrome DevTools ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ совСты, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Greet Me ΠΏΠΎ адрСсу https://greet-me-debugging.vercel.app/. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ прилоТСния ΠΈΠ· GitHub ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ локально.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° прСдоставляСт мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… инструмСнтов для выполнСния Π·Π°Π΄Π°Ρ‡ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ DOM, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ сСтСвых Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Но сСйчас нас интСрСсуСт панСль Sources , которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ Π² ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ JavaScript.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ DevTools, Π½Π°ΠΆΠ°Π² ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F12 ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сочСтаниС клавиш: Control+Shift+I (Windows, Linux) ΠΈΠ»ΠΈ Command+Option+I (Mac). Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Sources , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ Sources .

Рисунок 2. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ источников

ПанСль Sources состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… основных Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ².

Рисунок 3: Π Π°Π·Π΄Π΅Π»Ρ‹ ΠΏΠ°Π½Π΅Π»ΠΈ источников
  1. Π Π°Π·Π΄Π΅Π» Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² : Π—Π΄Π΅ΡΡŒ пСрСчислСны всС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ страница Greet Me .
  2. Π Π°Π·Π΄Π΅Π» Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° : ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ„Π°ΠΉΠ»Π° Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ здСсь отобраТаСтся содСрТимоС Ρ„Π°ΠΉΠ»Π°. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΡ‚ΡΡŽΠ΄Π°.
  3. Π Π°Π·Π΄Π΅Π» ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° : здСсь Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ мноТСство инструмСнтов для установки Ρ‚ΠΎΡ‡Π΅ΠΊ останова, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Ρ‚. Π΄.

Если ΠΎΠΊΠ½ΠΎ DevTools ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΈΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΎ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅, Ρ€Π°Π·Π΄Π΅Π» ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ справа ΠΎΡ‚ ΠΏΠ°Π½Π΅Π»ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°.

Рисунок 4: Окно DevTool ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова .

Π’ΠΎΡ‡ΠΊΠΈ останова β€” это логичСская Ρ‚ΠΎΡ‡ΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° для Π΅Π³ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

DevTools позволяСт ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами. Когда ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡ… ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒβ€¦

  • Π’ строкС ΠΊΠΎΠ΄Π°.
  • At условныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.
  • На ΡƒΠ·Π»Π΅ DOM.
  • ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΠΈ событий.

УстановитС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π½Π° строкС ΠΊΠΎΠ΄Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π½Π° строкС ΠΊΠΎΠ΄Π°:

  • ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ .
  • ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ исходный Ρ„Π°ΠΉΠ» ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° Навигация ΠΏΠΎ Ρ„Π°ΠΉΠ»Π°ΠΌ .
  • ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ строкС ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° справа.
  • Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ столбСц с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ строки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π½Π° строкС.
Рисунок 5: Установка Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π½Π° строку ΠΊΠΎΠ΄Π°

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ установили Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π½Π° строкС Π½ΠΎΠΌΠ΅Ρ€ 6. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ приостановлСно.

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ : Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ это, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ, ΠΊΠ°ΠΊΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ. Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ просто Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ с Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, это Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ останова строки ΠΊΠΎΠ΄Π° ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…. ΠœΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ это Π² послСднСй части ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова:

  • ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ .
  • ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ исходный Ρ„Π°ΠΉΠ» Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ„Π°ΠΉΠ»Π°ΠΌ.
  • ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ строкС ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° справа.
  • Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½ΠΎΠΌΠ΅Ρ€ строки ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова .
Рисунок 6a: Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½ΠΎΠΌΠ΅Ρ€ строки
  • Под строкой ΠΊΠΎΠ΄Π° появится Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. НачнитС Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ условиС. По ΠΌΠ΅Ρ€Π΅ Π²Π²ΠΎΠ΄Π° Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ автозаполнСния, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΡƒΡŽ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ условиС.
Рисунок 6b: Π’Π²Π΅Π΄ΠΈΡ‚Π΅ условиС
  • НаТмитС Π’Π²Π΅Π΄ΠΈΡ‚Π΅ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΎΠΊ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части столбца с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ строки.
Рисунок 6a: Активирована условная Ρ‚ΠΎΡ‡ΠΊΠ° останова

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ приостановлСно всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° вызываСтся функция print() с ΠΈΠΌΠ΅Π½Π΅ΠΌ Joe .

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ : Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Ссли Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° для исслСдования. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ условия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова для ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ событий

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова для ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ событий:

  • ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ .
  • Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ панСль Π’ΠΎΡ‡ΠΊΠΈ останова ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Ρ событий Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° .
  • Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ список ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ событий ΠΈΠ· списка ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова. Π’ нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ событиС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠœΡ‹ постараСмся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π»Π°ΠΆΠΎΠΊ click ΠΏΠΎΠ΄ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ mouse .
Рисунок 7: УстановитС Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π½Π° ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Π΅ событий Ρ‰Π΅Π»Ρ‡ΠΊΠ°

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ : Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ это, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Ρ событий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСтся послС запуска события.

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π½Π° ΡƒΠ·Π»Π΅ DOM

DevTools ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ эффСктивСн, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ DOM. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ добавляСтся, удаляСтся ΠΈΠ»ΠΈ измСняСтся Π² DOM.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ DOM:

  • НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»Π°Π΄ΠΊΠ°.
  • ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ элСмСнту, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова.
  • Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ элСмСнт ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ контСкстноС мСню. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π Π°Π·Ρ€Ρ‹Π² Π½Π° , Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ·: ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° , ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈΠ»ΠΈ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π° .
Рисунок 8: Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ DOM

Как Π²ΠΈΠ΄Π½ΠΎ Π½Π° рисункС Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ устанавливаСм Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ DOM Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ DIV с условиСм ΠŸΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ привСтствСнноС сообщСниС Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ DIV, Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ : Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ это, Ссли Π²Ρ‹ ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ошибка Π²Ρ‹Π·Π²Π°Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ DOM. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° JavaScript Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски приостановлСно, Ссли ΠΎΠ½ΠΎ прСрвСтся ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ DOM.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ всС Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ установки Ρ‚ΠΎΡ‡Π΅ΠΊ останова. Π’ слоТной ситуации ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π²Π°ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΠΈ останова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π Π°Π·Π΄Π΅Π» ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° содСрТит ΠΏΡΡ‚ΡŒ элСмСнтов управлСния для пошагового выполнСния ΠΊΠΎΠ΄Π°.

Рисунок 9: ПошаговоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅

Π¨Π°Π³ (сочСтаниС клавиш β€” F9)

Π­Ρ‚Π° опция позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ пошаговоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ построчно ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ выполнСния ΠΊΠΎΠ΄Π° JavaScript. Если Π½Π° ΠΏΡƒΡ‚ΠΈ Π΅ΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, пошаговоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, выполняСт Π΅Π΅ построчно, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· Π½Π΅Π΅.

Рисунок 9a: Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ шага построчно

Π¨Π°Π³ Π² ΠΎΠ±Ρ…ΠΎΠ΄ (сочСтаниС клавиш β€” F10)

Π­Ρ‚Π° опция позволяСт Π²Π°ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π΅ заходя Π² Π½Π΅Π΅. Иногда Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΈ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ. Π’ этой ситуации слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаг вмСсто .

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ logger() .

Рисунок 9b: ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ

Π¨Π°Π³ Π²Π½ΡƒΡ‚Ρ€ΡŒ (сочСтаниС клавиш β€” F11)

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту ΠΎΠΏΡ†ΠΈΡŽ для Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ исслСдования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΡ€ΠΈ пошаговом Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ функция Π²Π΅Π΄Π΅Ρ‚ сСбя Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ, ΠΈ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ шаг Π² , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²Ρ…ΠΎΠ΄ΠΈΠΌ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ logger() .

Рисунок 9c: Π¨Π°Π³ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π²Ρ‹Π·ΠΎΠ²Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π’Ρ‹Ρ…ΠΎΠ΄ (сочСтаниС клавиш β€” Shift + F11)

ΠŸΡ€ΠΈ пошаговом Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· Π½Π΅Π΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту ΠΎΠΏΡ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²Ρ…ΠΎΠ΄ΠΈΠΌ Π²Π½ΡƒΡ‚Ρ€ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ logger() , Π° Π·Π°Ρ‚Π΅ΠΌ сразу ΠΆΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Π½Π΅Π΅.

Рисунок 9d: Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅/ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ (сочСтаниС клавиш β€” F8)

Иногда Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±Π΅Π· ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту ΠΎΠΏΡ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ останова.

Рисунок 9e: Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ останова

Когда Π²Ρ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ строкам для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Scope

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ находится Π² глобальной области видимости ΠΈ ΠΊΠ°ΠΊΠΎΠ²Ρ‹ Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈΡ†Π΅Π» панСль. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова this .

Рисунок 10a: ПанСль Scope

Π‘Ρ‚Π΅ΠΊ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²

ПанСль стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ стСк выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Рисунок 10b: Π‘Ρ‚Π΅ΠΊ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²

ЗначСния

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” основной способ выявлСния ошибки Π² ΠΊΠΎΠ΄Π΅. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, просто навСдя ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ имя для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΅Π³ΠΎ значСния Π½Π° этапС выполнСния ΠΊΠΎΠ΄Π°.

Рисунок 10c: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° значСния ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора ΠΌΡ‹ΡˆΠΈ

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ document.getElementById('m_wish') для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ значСния.

Рисунок 10d: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° значСния выраТСния

Π Π°Π·Π΄Π΅Π» Watch позволяСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… значСния Π²ΠΎ врСмя выполнСния. Π­Ρ‚Π° функция ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вычислСния Π²Π½Π΅ Π»ΠΎΠ³ΠΈΠΊΠΈ вашСго ΠΊΠΎΠ΄Π°.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· области ΠΊΠΎΠ΄Π° ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ допустимоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ JavaScript. Π’ΠΎ врСмя прохоТдСния Π²Ρ‹ смоТСтС ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния.

Π’ΠΎΡ‚ шаги, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для добавлСния наблюдСния:

  • Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ + Π½Π°Π΄ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ Watch
Рисунок 11a. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ выраТСния наблюдСния
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для наблюдСния. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ слСдило Π·Π° Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.
Рисунок 11b: ΠΠ°Π±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ Π·Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ выраТСния

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ наблюдСния Π·Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ β€” ΠΈΠ· ящика консоли . Π‘ΠΌ. ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Рисунок 11c: Активация ящика консоли

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Deactivate Breakpoints (ΠΎΠ½Π° ΠΎΠ±Π²Π΅Π΄Π΅Π½Π° Π½ΠΈΠΆΠ΅).

Рисунок 12a: ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ всСх Ρ‚ΠΎΡ‡Π΅ΠΊ останова Ρ‚ΠΎΡ‡ΠΊΠΈ останова. Он просто Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… Π½Π° врСмя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. Π§Ρ‚ΠΎΠ±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ρ‚Ρƒ ΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π΅Ρ‰Π΅ Ρ€Π°Π·.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ останова с ΠΏΠ°Π½Π΅Π»ΠΈ Π’ΠΎΡ‡ΠΊΠΈ останова , сняв ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π»Π°ΠΆΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ навсСгда ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Ρ€Π°Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова .

Рисунок 12b: Π£Π΄Π°Π»ΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ, нСсколько ΠΈΠ»ΠΈ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова

Учитывая всС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ, ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ мнСнию, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Greet Me Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π»ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ? Π’Ρ‹ это ΡƒΠΆΠ΅ поняли?

Если Π½Π΅Ρ‚, Ρ‚ΠΎ просто лишниС + ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ построСнии сообщСния .

 // Π­Ρ‚ΠΎ строка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.
// Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Β«+Β» ΠΏΠ΅Ρ€Π΅Π΄ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ.
константноС сообщСниС = 'ΠŸΡ€ΠΈΠ²Π΅Ρ‚'
                        + имя
                        + ', Π’Π°ΡˆΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ `'
                        + + ΠΆΠ΅Π»Π°Π½ΠΈΠ΅
                        + '`ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±Ρ‹Ρ‚ΡŒΡΡ!';
 

Как Π±Ρ‹ ΠΌΡ‹ нашли это Π² рСалистичном сцСнарии ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ? ВзглянитС Π½Π° это ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ дСмонстрационноС Π²ΠΈΠ΄Π΅ΠΎ (Π±Π΅Π· Π·Π²ΡƒΠΊΠ°),

ΠžΡ‚Π»Π°Π΄ΠΊΠ° JS: исправлСниС прилоТСния Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ мСня»

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ с исправлСнной вСрсиСй ΠΎΡ‚ΡΡŽΠ΄Π°.

Какой ваш Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π°? Π›ΠΈΡ‡Π½ΠΎ ΠΌΠ½Π΅ нравится ΠΊΠΎΠ΄ Visual Studio ΠΈΠ·-Π·Π° Π΅Π³ΠΎ простоты. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ срСду ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ VS Code, всСго Π·Π° нСсколько простых шагов.

Настройка VS Code для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

VS Code ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ) для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ возмоТностСй. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ JavaScript, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ для Chrome . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… способов:

  • ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° домашнюю страницу ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° для Chrome ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΒ». Π­Ρ‚ΠΎ запустит VS Code ΠΈ автоматичСски запустит установку.
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Extensions VS Code ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.
Рис. 13a. Установка Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ VS Code

ПослС установки Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Β» слСва ΠΈ создайтС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ для запуска/ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ прилоТСния JavaScript.

Рисунок 13b: Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ

Π‘ΡƒΠ΄Π΅Ρ‚ создан Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ launch.json с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ настройках. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

 {
    // Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ IntelliSense, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ…. 
    // НавСдитС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ описания ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².
    // Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ посСтитС: 
    "вСрсия": "0.2.0",
    "ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ": [
        {
            "Ρ‚ΠΈΠΏ": "Ρ…Ρ€ΠΎΠΌ",
            "запрос": "Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ",
            "name": "ΠžΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Greet Me",
            "url": "",
            "webRoot": "${workspaceFolder}"
        }
    ]
}
 

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

  • имя : всС, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для вашСго прилоТСния. ΠœΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.
  • URL-адрСс : URL-адрСс, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ локально.
  • webRoot : ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ ${workspaceFolder}, β€” тСкущая ΠΏΠ°ΠΏΠΊΠ°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° ΠΏΠ°ΠΏΠΊΡƒ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°, Π³Π΄Π΅ находится Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ», ΠΊΠ°ΠΊ index.html.

ПослСдний шаг β€” Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² малСнький Π·Π½Π°Ρ‡ΠΎΠΊ воспроизвСдСния Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ.

Рисунок 13c: ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ

ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния ΠΎ панСлях ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°

VS Code прСдоставляСт инструмСнты, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ DevTools , для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ JavaScript. Π’Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ с ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ JavaScript Google Chrome, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅. Π’ΠΎΡ‚ основныС Ρ€Π°Π·Π΄Π΅Π»Ρ‹, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π°ΠΌ слСдуСт Π·Π½Π°Ρ‚ΡŒ:

  1. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ воспроизвСдСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.
  2. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈ для приостановки ΠΈΠ»ΠΈ остановки ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² Chrome DevTools, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сочСтания клавиш ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.
  3. Установка Ρ‚ΠΎΡ‡Π΅ΠΊ останова Π² исходном ΠΊΠΎΠ΄Π΅. Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅.
  4. ПанСль областСй для просмотра областСй ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Они ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ Π² ΠΎΠ±ΠΎΠΈΡ… случаях.
  5. ПанСль часов для создания ΠΈ просмотра Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
  6. Π‘Ρ‚Π΅ΠΊ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ выполнСния.
  7. Бписок Ρ‚ΠΎΡ‡Π΅ΠΊ останова для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ удалСния.
  8. Консоль ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ для чтСния сообщСний ΠΆΡƒΡ€Π½Π°Π»Π° консоли.
Рисунок 13d: Анатомия элСмСнтов управлСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ VS Code

Быстрая дСмонстрация

Π’ΠΎΡ‚ нСбольшая дСмонстрация (1 ΠΌΠΈΠ½ΡƒΡ‚Π°), Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ использованиС элСмСнтов управлСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ VS Code.

Подводя ΠΈΡ‚ΠΎΠ³ΠΈ,

  • ВсСгда Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнт для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π° JavaScript. Π’Π°ΠΊΠΎΠΉ инструмСнт, ΠΊΠ°ΠΊ Google Chrome DevTools ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° VS Code, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ просто ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° console.log() .
  • ПанСль исходного ΠΊΠΎΠ΄Π° DevTools Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ мощная, с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, просмотра Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, понимания областСй, чтСния стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ Ρ‚. Π΄.
  • БущСствуСт нСсколько способов установки Ρ‚ΠΎΡ‡Π΅ΠΊ останова, ΠΈ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² зависимости ΠΎΡ‚ ситуации ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. .
  • Π£ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ останова с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DevTools просто.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° VS Code Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΌΠΎΡ‰Π½ΠΎΠ΅, ΠΈ Π΅Π³ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ.
  • Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ использовании инструмСнта ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ для локальной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ осмыслСнныС console.log() ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Bugfender Π²Ρ‹ смоТСтС ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ находится Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСдС.

Пока это всС. Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ спасибо Π·Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅, надСюсь, эта ΡΡ‚Π°Ρ‚ΡŒΡ окаТСтся для вас ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. Π£Π΄Π°Ρ‡Π½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ! ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ с Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π² Π’Π²ΠΈΡ‚Ρ‚Π΅Ρ€Π΅ (@tapasadhikary).

ΠžΡ‚Π»Π°Π΄ΠΊΠ° JS: настройка VS Code для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Назад Π² Π±Π»ΠΎΠ³ Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ΠžΡ‚Π»Π°Π΄ΠΊΠ° JavaScript Π² MyEclipse

Π­Ρ‚ΠΎ руководство Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ с основами ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² MyEclipse. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ JavaScript, (X)HTML, JSP ΠΈ Node.js. Π’ этом руководствС Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ:

  • Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ JavaScript
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅
  • ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСдставлСниС Β«Π—Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ JavaScriptΒ»

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: 30 ΠΌΠΈΠ½ΡƒΡ‚

ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ сСйчас

НСт MyEclipse? Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ сСйчас

.

  • 1. ЗапуститС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ JavaScript
  • 1.1 ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π΅Π±-прилоТСния
  • 1.2 ΠžΡ‚Π»Π°Π΄ΠΊΠ° прилоТСния Node.js
  • 1.3 Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ
  • 1.3.1 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° исходного ΠΊΠΎΠ΄Π° JavaScript
  • 4
  • 4
  • 2. ΠžΡ‚Π»Π°Π΄ΠΊΠ° JavaScript с Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ останова
  • 2.1 Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова
  • 2.2 Remove a Breakpoint
  • 2.3 Disable a Breakpoint
  • 2.4 Enable a Breakpoint
  • 2.5 Apply a Hit Count to a Breakpoint
  • 2. 6 Create a Conditional Breakpoint
  • 3. Use Variables and Expressions
  • 3.1 Variables View
  • 3.2 ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
  • 4. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° JavaScript
  • 5. ИспользованиС прСдставлСния Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ JavaScript

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. здСсь.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‰ΠΈΠ΅ Π²Π΅Π±-прилоТСния, Ρ‚Π°ΠΊ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Node.js. Π£ вас Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² соотвСтствии с вашими ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ трСбованиями. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ Ρ‚ΠΎΡ‡ΠΊΠΈ останова вас попросят ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΡŽ ΠžΡ‚Π»Π°Π΄ΠΊΠ°. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΌΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ этого сообщСния Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π”Π°.


ΠŸΡ€ΠΎΠ΅ΠΊΡ†ΠΈΡ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ прСдставлСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для эффСктивной ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π°

1.1 ΠžΡ‚Π»Π°Π΄ΠΊΠ° стандартного Π²Π΅Π±-прилоТСния

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π΅Π±-прилоТСния Ρƒ вас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн Google Chrome. ΠŸΡ€ΠΈ запускС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Google Chrome открываСтся автоматичСски. Π•ΡΡ‚ΡŒ нСсколько способов Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

Из MyEclipseΒ Explorer β€” Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ прилоТСния (EAR) ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠ°ΠΊΒ»> Β«JavaScript Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ JavaEEΒ»; ΠΈΠ»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β Β (Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ JavaScript Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ JavaEE ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ OK, Ссли ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚).

Из прСдставлСния сСрвСра β€” послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ Π½Π° сСрвСрС, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² прСдставлСнии Β«Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹Β» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ JavaScriptΒ» ΠΈΠ»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β .

Из ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ s β€” Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈΒ» Π² мСню Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ». Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΏΠ°ΠΏΠΊΠ΅ JavaScript Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ°Β».

1.2Β ΠžΡ‚Π»Π°Π΄ΠΊΠ° прилоТСния Node.js

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Node.js Ρƒ вас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн Node.js. Π•ΡΡ‚ΡŒ нСсколько способов Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

Из MyEclipseΒ Explorer β€” Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Ρ„Π°ΠΉΠ» JavaScript ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠ°ΠΊΒ»> «АвтономноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node. jsΒ»; ΠΈΠ»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» JavaScriptΒ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β .

Из прСдставлСния сСрвСра β€” послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ Π½Π° сСрвСрС, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² прСдставлСнии Β«Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹Β» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ JavaScriptΒ» ΠΈΠ»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β .

Из ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ β€” Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈΒ» Π² мСню Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ». Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΏΠ°ΠΏΠΊΠ΅ «АвтономноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ JavaScriptΒ» ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ°Β».

1.3 Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ прилоТСния автоматичСски создаСтся конфигурация ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉΒ» Π² мСню Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ»; ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² MyEclipseΒ Explorer ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» JavaScript Π² прилоТСниях Node.js ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠ°ΠΊ > ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ . Π’Π°Ρˆ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ отобраТаСтся Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅: JavaScript Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ для ΠΎΠ±Ρ‰ΠΈΡ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ АвтономноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ JavaScript для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Node. js.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽΒ ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ.

Π‘ΠΎΠ²Π΅Ρ‚:  Если Π²Ρ‹ Π½Π΅ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ сСрвСр, Π²Ρ‹ смоТСтС ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ΅ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС.

1.3.1 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° исходных ΠΊΠ°Ρ€Ρ‚

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ инструмСнт для транспиляции (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, TypeScript ΠΈΠ»ΠΈ Coffeescript), ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, minifyJS ΠΈΠ»ΠΈ UglifyJS) ΠΈΠ»ΠΈ связывания (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Browserify), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° исходной ΠΊΠ°Ρ€Ρ‚Ρ‹ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ваши Ρ„Π°ΠΉΠ»Ρ‹ JavaScript, позволяя ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ выполнСния ΠΊΠΎΠ΄Π° Π² контСкстС исходного Ρ„Π°ΠΉΠ»Π°. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ исходныС ΠΊΠ°Ρ€Ρ‚Ρ‹, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β  Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ исходных ΠΊΠ°Ρ€Ρ‚ Π² конфигурациях ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ инструмСнт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

1.3.2Β ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ Π·Π°ΠΌΠ΅Π½Π° ΠΊΠΎΠ΄Π° JavaScript

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ Π·Π°ΠΌΠ΅Π½Π° ΠΊΠΎΠ΄Π° JavaScript Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ автоматичСски ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ измСнСния JavaScript нСпосрСдствСнно Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² сочСтании с Live Preview, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

Β 

ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ приостанавливаСтся ΠΈ отобраТаСтся ΠΏΠ΅Ρ€ΡΠΏΠ΅ΠΊΡ‚ΠΈΠ²Π°Β ΠžΡ‚Π»Π°Π΄ΠΊΠ°. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, приостановлСнный ΠΏΠΎΡ‚ΠΎΠΊ Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ΅ стСка, Π²Ρ‹Π²ΠΎΠ΄ консоли, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, связанныС с Ρ„Ρ€Π΅ΠΉΠΌΠΎΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ JavaScript.


Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ Π½Π°ΠΉΡ‚ΠΈ ошибки

2.1 Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова

Π’ строкС ΠΊΠΎΠ΄Π° Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ исходного ΠΊΠΎΠ΄Π° Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° полосС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π² Π»Π΅Π²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова. Или Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ слСва ΠΎΡ‚ поля, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова. Π’ΠΎΡ‡ΠΊΠ° останова обозначаСтся синим ΠΊΡ€ΡƒΠΆΠΊΠΎΠΌ Β Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² ΠΈ добавляСтся Π² прСдставлСниС «Π’ΠΎΡ‡ΠΊΠΈ останова».

2.2 Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова

Когда Ρ‚ΠΎΡ‡ΠΊΠ° останова большС Π½Π΅ Π½ΡƒΠΆΠ½Π°, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ. Π£Π΄Π°Π»ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ прСдставлСния Β«Π’ΠΎΡ‡ΠΊΠΈ останова». ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π·Π½Π°Ρ‡ΠΎΠΊ исчСзаСт с ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ², Π° Ρ‚ΠΎΡ‡ΠΊΠ° останова большС Π½Π΅ отобраТаСтся Π² прСдставлСнии «Π’ΠΎΡ‡ΠΊΠΈ останова».

Из Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π° β€” Доступ ΠΊ строкС ΠΊΠΎΠ΄Π° с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ останова Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ исходного ΠΊΠΎΠ΄Π°, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° полосС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π² Π»Π΅Π²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова». Или Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ слСва ΠΎΡ‚ поля, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова.

Из прСдставлСния Ρ‚ΠΎΡ‡Π΅ΠΊ останова β€” Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΈΠ· прСдставлСния Ρ‚ΠΎΡ‡Π΅ΠΊ останова. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π£Π΄Π°Π»ΠΈΡ‚ΡŒΒ»; ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π£Π΄Π°Π»ΠΈΡ‚ΡŒ».
Π‘ΠΎΠ²Π΅Ρ‚: Β Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² прСдставлСнии Β«Π’ΠΎΡ‡ΠΊΠΈ останова», ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС».

2.3 ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Π½ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Π° Π½Π΅ удаляйтС Π΅Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ исходного ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π² прСдставлСнии Β«Π’ΠΎΡ‡ΠΊΠΈ останова». ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° останова обозначаСтся ΠΏΠΎΠ»Ρ‹ΠΌ ΠΊΡ€ΡƒΠΆΠΊΠΎΠΌΒ .

Из Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π° β€” Доступ ΠΊ строкС ΠΊΠΎΠ΄Π° с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ останова Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ исходного ΠΊΠΎΠ΄Π°, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° полосС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π² Π»Π΅Π²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова».

Из прСдставлСния Ρ‚ΠΎΡ‡Π΅ΠΊ останова β€” снимитС Ρ„Π»Π°ΠΆΠΎΠΊ слСва ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΒ».

2.4 Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π½Π΅Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ исходного ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π² прСдставлСнии Β«Π’ΠΎΡ‡ΠΊΠΈ останова». Когда Π²Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, синий ΠΊΡ€ΡƒΠΆΠΎΠΊ замСняСт пустой ΠΊΡ€ΡƒΠΆΠΎΠΊ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ².

Из Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π° β€” ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ строкС ΠΊΠΎΠ΄Π° с ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ останова Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ исходного ΠΊΠΎΠ΄Π°, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° полосС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π² Π»Π΅Π²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова».

Из прСдставлСния Ρ‚ΠΎΡ‡Π΅ΠΊ останова β€” УстановитС Ρ„Π»Π°ΠΆΠΎΠΊ слСва ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.

2.5 ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ счСтчика ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΉ ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ΅ останова

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свойства Ρ‚ΠΎΡ‡ΠΊΠΈ останова, Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π² Π½Π΅Π΅ счСтчик ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ приостанавливаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° послС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ количСства ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΉ Π² Π½Π΅Π³ΠΎ. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠ° останова ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° снова Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΈΠ»ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ количСство ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΉ.

Из Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π°
  1. Π’ строкС ΠΊΠΎΠ΄Π° Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ полосу ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π² Π»Π΅Π²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Бвойства Ρ‚ΠΎΡ‡ΠΊΠΈ останова».
  2. УстановитС Ρ„Π»Π°ΠΆΠΎΠΊ Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΉ.
  3. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число.
  4. НаТмитС OK.

Из прСдставлСния Ρ‚ΠΎΡ‡Π΅ΠΊ останова
  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова.
  2. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ счСтчик ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΉ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части экрана.
  3. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число.

2.

6 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ условной Ρ‚ΠΎΡ‡ΠΊΠΈ останова

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ условныС Ρ‚ΠΎΡ‡ΠΊΠΈ останова для приостановки выполнСния ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ истинно ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ измСняСтся. Когда Π²Ρ‹ создаСтС ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΊ Π·Π½Π°Ρ‡ΠΊΡƒ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² добавляСтся Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊΒ .

Из Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π°
  1. Π’ строкС ΠΊΠΎΠ΄Π° Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° полосС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π² Π»Π΅Π²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Бвойства Ρ‚ΠΎΡ‡ΠΊΠΈ останова».
  2. УстановитС Ρ„Π»Π°ΠΆΠΎΠΊ Условно.
  3. Β Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ истинном Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния.
  4. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² JavaScript Π² ΠΏΠΎΠ»Π΅.
  5. НаТмитС OK.
  6. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+S, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния.

Из прСдставлСния Ρ‚ΠΎΡ‡Π΅ΠΊ останова
  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова.
  2. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Условно» Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части прСдставлСния.
  3. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ истинном Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния.
  4. Β Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° языкС JavaScript Π² ΠΏΠΎΠ»Π΅ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части прСдставлСния.
  5. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+S, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния.

Β 

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ прСдставлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ JavaScript ΠΏΡ€ΠΈ достиТСнии Ρ‚ΠΎΡ‡ΠΊΠΈ останова. Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ значСния Π²Π°ΡˆΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с вашим ΠΊΠΎΠ΄ΠΎΠΌ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ выраТСния для экспСримСнтов.

3.1 ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Β«ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅Β»

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Β«ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅Β» ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠΈ Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ°Β» позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ список ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, связанныС с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΊΠ°Π΄Ρ€ΠΎΠΌ стСка, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ.

Π‘ΠΎΠ²Π΅Ρ‚: НавСдитС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ исходного ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.


Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ прСдставлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для просмотра Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

3.2 ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

ВыраТСния, связанныС с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠΎΠΌ стСка, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² прСдставлСнии Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ прСдставлСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния отобраТаСтся Π² столбцС Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НаТмитС Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ выраТСния.

Π‘ΠΎΠ²Π΅Ρ‚: Β  Если это прСдставлСниС Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² пСрспСктиву ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Windows>ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ прСдставлСниС>ВыраТСния.


Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ прСдставлСниС «ВыраТСния» для добавлСния Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΊΠΎΠ΄Π°.

ПослС достиТСния Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ Π½Π°ΠΉΡ‚ΠΈ Π»ΡŽΠ±Ρ‹Π΅ ошибки.

Команда
Кнопка
Π”Π΅Ρ‚Π°Π»ΠΈ
ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ (F6) ВыполняСтся тСкущая строка, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ приостанавливаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ исполняСмой строкС.
Π¨Π°Π³ Π² (F5) ВызываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ исполняСмоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строкС, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ приостанавливаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ исполняСмой строкС Π² Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅.
Π‘Ρ‚ΡƒΠΏΠ΅Π½Ρ‡Π°Ρ‚Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ (F7) Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ возобновляСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ приостанавливаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ исполняСмой строкС.
ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ.
Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ВозобновляСт ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ Π½ΠΈΡ‚ΡŒ.
Drop to Frame Π’Ρ…ΠΎΠ΄ Π² Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€ стСка.
ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠŸΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ прСдставлСнии ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅.

Β 

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Β«Π—Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ JavaScriptΒ» ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС сцСнарии, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΈΠ»ΠΈ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹ΠΉ Π²ΠΈΠ΄. Если Π΄Π»ΠΈΠ½Π° строки Π² скриптС ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 4000 символов, ΠΎΠ½Π° обрСзаСтся ΠΏΡ€ΠΈ просмотрС Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ исходного ΠΊΠΎΠ΄Π°.