YUI 3.x Home -

Site Search (YDN & YUIBlog):

# YUI Library Examples: The YUI Global Object: Check Data Types with `Lang`

## The YUI Global Object: Check Data Types with `Lang`

The YUI Global Object includes several useful type-checking methods in the `Lang` object. In addition to the 'isXYZ' type check methods, YUI3 includes `Y.Lang.type`, which returns a string representing the type of the tested object. Click the "Check" button in each row to evaluate the data.

View example in new window.

Data | isObject | isArray | isFunction | type
--- | --- | --- | --- | ---
`null``` |
`[] or new Array()` |
`{} or new Object()` |
`function Foo() {}` |
`new Foo()` |

## Type Checking with YUI

### Instantiate YUI

    <!-- include yui --><script type="text/javascript" src="../../build/yui/yui.js"></script> YUI().use("node", function(Y) {    // This method is in the core of the library, so we don't have to use() any    // additional modules to access it.  However, this example requires 'node'.

    <!-- include yui -->
    <script type="text/javascript" src="../../build/yui/yui.js"></script>

    YUI().use("node", function(Y) {
        // This method is in the core of the library, so we don't have to use() any
        // additional modules to access it.  However, this example requires 'node'.

<!-- include yui --> <script type="text/javascript" src="../../build/yui/yui.js"></script> YUI().use("node", function(Y) { // This method is in the core of the library, so we don't have to use() any // additional modules to access it. However, this example requires 'node'.

### Checking types

In this example, we use a few of the type-checking methods available in `Lang` to test various types of data.

    // Test the input using Y.Lang type checking methodsvar checkType = function (val) {    return {        'object'  : Y.Lang.isObject(val),        'array'   : Y.Lang.isArray(val),        'function': Y.Lang.isFunction(val),        'type'    : Y.Lang.type(val)    };};

    // Test the input using Y.Lang type checking methods
    var checkType = function (val) {
        return {
            'object'  : Y.Lang.isObject(val),
            'array'   : Y.Lang.isArray(val),
            'function': Y.Lang.isFunction(val),
            'type'    : Y.Lang.type(val)
        };
    };

// Test the input using Y.Lang type checking methods var checkType = function (val) { return { 'object' : Y.Lang.isObject(val), 'array' : Y.Lang.isArray(val), 'function': Y.Lang.isFunction(val), 'type' : Y.Lang.type(val) }; };

### Full Source

    YUI().use("node", function(Y) {    // This method is in the core of the library, so we don't have to use() any    // additional modules to access it.  However, this example requires 'node'.     var checkType = function (val) {        return {            'object'  : Y.Lang.isObject(val),            'array'   : Y.Lang.isArray(val),            'function': Y.Lang.isFunction(val),            'type'    : Y.Lang.type(val)        };    };     var populateRow = function (e, data) {        var target = e.target;            cell = target.get('parentNode'),            row  = cell.get('parentNode');         row.removeChild(cell);         var td0 = document.createElement('td'),            td1 = td0.cloneNode(false),            td2 = td0.cloneNode(false);            td3 = td0.cloneNode(false);         var results = checkType(data);         td0.appendChild(document.createTextNode(results['object']   ? 'Y' : 'N'));        td1.appendChild(document.createTextNode(results['array']    ? 'Y' : 'N'));        td2.appendChild(document.createTextNode(results['function'] ? 'Y' : 'N'));        td3.appendChild(document.createTextNode(results['type']));         row.appendChild(td0);        row.appendChild(td1);        row.appendChild(td2);        row.appendChild(td3);    };     var foo = function () {};    var f = Y.one('#demo');     Y.on('click',populateRow, '#demo-1', Y, null);    Y.on('click',populateRow, '#demo-2', Y, []);    Y.on('click',populateRow, '#demo-3', Y, {});    Y.on('click',populateRow, '#demo-4', Y, foo);    Y.on('click',populateRow, '#demo-5', Y, new foo()); });

    YUI().use("node", function(Y) {
        // This method is in the core of the library, so we don't have to use() any
        // additional modules to access it.  However, this example requires 'node'.

        var checkType = function (val) {
            return {
                'object'  : Y.Lang.isObject(val),
                'array'   : Y.Lang.isArray(val),
                'function': Y.Lang.isFunction(val),
                'type'    : Y.Lang.type(val)
            };
        };

        var populateRow = function (e, data) {
            var target = e.target;
                cell = target.get('parentNode'),
                row  = cell.get('parentNode');

            row.removeChild(cell);

            var td0 = document.createElement('td'),
                td1 = td0.cloneNode(false),
                td2 = td0.cloneNode(false);
                td3 = td0.cloneNode(false);

            var results = checkType(data);

            td0.appendChild(document.createTextNode(results['object']   ? 'Y' : 'N'));
            td1.appendChild(document.createTextNode(results['array']    ? 'Y' : 'N'));
            td2.appendChild(document.createTextNode(results['function'] ? 'Y' : 'N'));
            td3.appendChild(document.createTextNode(results['type']));

            row.appendChild(td0);
            row.appendChild(td1);
            row.appendChild(td2);
            row.appendChild(td3);
        };

        var foo = function () {};
        var f = Y.one('#demo');

        Y.on('click',populateRow, '#demo-1', Y, null);
        Y.on('click',populateRow, '#demo-2', Y, []);
        Y.on('click',populateRow, '#demo-3', Y, {});
        Y.on('click',populateRow, '#demo-4', Y, foo);
        Y.on('click',populateRow, '#demo-5', Y, new foo());

    });

YUI().use("node", function(Y) { // This method is in the core of the library, so we don't have to use() any // additional modules to access it. However, this example requires 'node'. var checkType = function (val) { return { 'object' : Y.Lang.isObject(val), 'array' : Y.Lang.isArray(val), 'function': Y.Lang.isFunction(val), 'type' : Y.Lang.type(val) }; }; var populateRow = function (e, data) { var target = e.target; cell = target.get('parentNode'), row = cell.get('parentNode'); row.removeChild(cell); var td0 = document.createElement('td'), td1 = td0.cloneNode(false), td2 = td0.cloneNode(false); td3 = td0.cloneNode(false); var results = checkType(data); td0.appendChild(document.createTextNode(results['object'] ? 'Y' : 'N')); td1.appendChild(document.createTextNode(results['array'] ? 'Y' : 'N')); td2.appendChild(document.createTextNode(results['function'] ? 'Y' : 'N')); td3.appendChild(document.createTextNode(results['type'])); row.appendChild(td0); row.appendChild(td1); row.appendChild(td2); row.appendChild(td3); }; var foo = function () {}; var f = Y.one('#demo'); Y.on('click',populateRow, '#demo-1', Y, null); Y.on('click',populateRow, '#demo-2', Y, []); Y.on('click',populateRow, '#demo-3', Y, {}); Y.on('click',populateRow, '#demo-4', Y, foo); Y.on('click',populateRow, '#demo-5', Y, new foo()); });

Copyright © 2009 Yahoo! Inc. All rights reserved.

Privacy Policy - Terms of Service - Copyright Policy - Job Openings