Provides core language utilites and extensions used throughout YUI.
_isNativefn
Returns true if the given function appears to be implemented in native code,
false otherwise. Will always return false -- even in ES5-capable browsers --
if the useNativeES5 YUI config option is set to false.
This isn't guaranteed to be 100% accurate and won't work for anything other than
functions, but it can be useful for determining whether a function like
Array.prototype.forEach is native or a JS shim provided by another library.
There's a great article by @kangax discussing certain flaws with this technique: http://perfectionkills.com/detecting-built-in-host-methods/
While his points are valid, it's still possible to benefit from this function as long as it's used carefully and sparingly, and in such a way that false negatives have minimal consequences. It's used internally to avoid using potentially broken non-native ES5 shims that have been added to the page by other libraries.
fn
Function
Function to test.
true if fn appears to be native, false otherwise.
isArrayo
Determines whether or not the provided item is an array.
Returns false for array-like collections such as the function arguments
collection or HTMLElement collections. Use Y.Array.test() if you want to
test for an array-like collection.
o
Object
The object to test.
true if o is an array.
isBooleano
Determines whether or not the provided item is a boolean.
o
Object
The object to test.
true if o is a boolean.
isDateo
Determines whether or not the supplied item is a date instance.
o
Object
The object to test.
true if o is a date.
isFunctiono
Determines whether or not the provided item is a function. Note: Internet Explorer thinks certain functions are objects:
var obj = document.createElement("object");
Y.Lang.isFunction(obj.getAttribute) // reports false in IE
var input = document.createElement("input"); // append to body
Y.Lang.isFunction(input.focus) // reports false in IE
You will have to implement additional tests if these functions matter to you.
o
Object
The object to test.
true if o is a function.
isNullo
Determines whether or not the provided item is null.
o
Object
The object to test.
true if o is null.
isNumbero
Determines whether or not the provided item is a legal number.
o
Object
The object to test.
true if o is a number.
isObjecto
failfn
Determines whether or not the provided item is of type object
or function. Note that arrays are also objects, so
Y.Lang.isObject([]) === true.
true if o is an object.
isRegExpvalue
Determines whether or not the provided value is a regexp.
value
Object
The value or object to test.
true if value is a regexp.
isStringo
Determines whether or not the provided item is a string.
o
Object
The object to test.
true if o is a string.
isUndefinedo
Determines whether or not the provided item is undefined.
o
Object
The object to test.
true if o is undefined.
isValueo
A convenience method for detecting a legitimate non-null value. Returns false for null/undefined/NaN, true for other values, including 0/false/''
o
Object
The item to test.
true if it is not null/undefined/NaN || false.
nowReturns the current time in milliseconds.
Current time in milliseconds.
subs
o
Performs {placeholder} substitution on a string. The object passed as the
second parameter provides values to replace the {placeholder}s.
{placeholder} token names must match property names of the object. For example,
var greeting = Y.Lang.sub("Hello, {who}!", { who: "World" });
{placeholder} tokens that are undefined on the object map will be left
in tact (leaving unsightly {placeholder}'s in the output string).
the substitute result.
trims
Returns a string without any leading or trailing whitespace. If the input is not a string, the input will be returned untouched.
s
String
the string to trim.
the trimmed string.
trimLefts
Returns a string without any leading whitespace.
s
String
the string to trim.
the trimmed string.
trimRights
Returns a string without any trailing whitespace.
s
String
the string to trim.
the trimmed string.
typeo
Returns one of the following strings, representing the type of the item passed in:
Known issues:
typeof HTMLElementCollection returns function in Safari, but
Y.Lang.type() reports "object", which could be a good thing --
but it actually caused the logic in Y.Lang.isObject to fail.o
Object
the item to test.
the detected type.