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.
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.
isBooleano
Determines whether or not the provided item is a boolean.
o
Object
The object to test.
isDateo
Determines whether or not the supplied item is a date instance.
o
Object
The object to test.
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.
isNullo
Determines whether or not the provided item is null.
o
Object
The object to test.
isNumbero
Determines whether or not the provided item is a legal number.
o
Object
The object to test.
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.
isStringo
Determines whether or not the provided item is a string.
o
Object
The object to test.
isUndefinedo
Determines whether or not the provided item is undefined.
o
Object
The object to test.
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.
nowReturns the current time in milliseconds.
subs
o
Lightweight version of Y.substitute. Uses the same template
structure as Y.substitute, but doesn't support recursion,
auto-object coersion, or formats.
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.
trimLefts
Returns a string without any leading whitespace.
s
String
the string to trim.
trimRights
Returns a string without any trailing whitespace.
s
String
the string to trim.
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.