JsValue - The `wasm-bindgen` Guide

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# `JsValue`

`T` parameter | `&T` parameter | `&mut T` parameter | `T` return value | `Option<T>` parameter | `Option<T>` return value | JavaScript representation
--- | --- | --- | --- | --- | --- | ---
Yes | Yes | No | Yes | No | No | Any JavaScript value

## Example Rust Usage

    #![allow(unused)]
    fn main() {
    use wasm_bindgen::prelude::*;

    #[wasm_bindgen]
    pub fn take_js_value_by_value(x: JsValue) {}

    #[wasm_bindgen]
    pub fn take_js_value_by_shared_ref(x: &JsValue) {}

    #[wasm_bindgen]
    pub fn return_js_value() -> JsValue {
        JsValue::NULL
    }
    }

## Example JavaScript Usage

    import {
      take_js_value_by_value,
      take_js_value_by_shared_ref,
      return_js_value,
    } from './guide_supported_types_examples';

    take_js_value_by_value(42);
    take_js_value_by_shared_ref('hello');

    let v = return_js_value();