# `Hologram.JS`
[🔗](https://github.com/bartblast/hologram/blob/v0.10.1/lib/hologram/js.ex#L1)

# `call`
*macro* 

Calls a function from the current scope (imported binding or global).

# `call`
*macro* 

Calls a method on a JS receiver.

# `delete`
*macro* 

Deletes a property from a JS receiver.

# `dispatch_event`
*macro* 

Dispatches a JavaScript event on a target element.

# `dispatch_event`
*macro* 

# `dispatch_event`
*macro* 

# `eval`

```elixir
@spec eval(String.t()) :: any()
```

Evaluates a JavaScript expression and returns the result.

# `exec`

```elixir
@spec exec(String.t()) :: any()
```

Executes JavaScript code.

# `get`
*macro* 

Gets a property from a JS receiver.

# `instanceof`
*macro* 

Checks if a value is an instance of a JS class.

# `js_import`
*macro* 

Imports the default JS export and binds it to a name that can be used as a receiver
in other JS functions. The :as option is required.

## Examples

    js_import from: "chart.js", as: :Chart

# `js_import`
*macro* 

Imports a named JS export and binds it to a name that can be used as a receiver
in other JS functions.

## Examples

    js_import :Chart, from: "chart.js"
    js_import :Chart, from: "chart.js", as: :MyChart

# `new`
*macro* 

Instantiates a JS class.

# `set`
*macro* 

Sets a property on a JS receiver.

# `sigil_JS`

```elixir
@spec sigil_JS(String.t(), []) :: :ok
```

Provides a convenient syntax for executing JavaScript code using the ~JS sigil.

# `typeof`
*macro* 

Returns the JavaScript type of a value.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
