Lang Class
Provides core language utilites and extensions used throughout YUI.
Item Index
Methods
_isNative
-
fn
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.
Parameters:
-
fn
FunctionFunction to test.
Returns:
isArray
-
o
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.
Parameters:
-
o
ObjectThe object to test.
Returns:
isBoolean
-
o
Determines whether or not the provided item is a boolean.
Parameters:
-
o
ObjectThe object to test.
Returns:
isDate
-
o
Determines whether or not the supplied item is a date instance.
Parameters:
-
o
ObjectThe object to test.
Returns:
isFunction
-
o
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.
Parameters:
-
o
ObjectThe object to test.
Returns:
isNull
-
o
Determines whether or not the provided item is null.
Parameters:
-
o
ObjectThe object to test.
Returns:
isNumber
-
o
Determines whether or not the provided item is a legal number.
Parameters:
-
o
ObjectThe object to test.
Returns:
isObject
-
o
-
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
.
Returns:
isString
-
o
Determines whether or not the provided item is a string.
Parameters:
-
o
ObjectThe object to test.
Returns:
isUndefined
-
o
Determines whether or not the provided item is undefined.
Parameters:
-
o
ObjectThe object to test.
Returns:
isValue
-
o
A convenience method for detecting a legitimate non-null value. Returns false for null/undefined/NaN, true for other values, including 0/false/''
Parameters:
-
o
ObjectThe item to test.
Returns:
now
()
Number
static
Returns the current time in milliseconds.
Returns:
sub
-
s
-
o
Lightweight version of Y.substitute
. Uses the same template
structure as Y.substitute
, but doesn't support recursion,
auto-object coersion, or formats.
Returns:
trim
-
s
Returns a string without any leading or trailing whitespace. If the input is not a string, the input will be returned untouched.
Parameters:
-
s
Stringthe string to trim.
Returns:
trimLeft
-
s
Returns a string without any leading whitespace.
Parameters:
-
s
Stringthe string to trim.
Returns:
trimRight
-
s
Returns a string without any trailing whitespace.
Parameters:
-
s
Stringthe string to trim.
Returns:
type
-
o
Returns one of the following strings, representing the type of the item passed in:
- "array"
- "boolean"
- "date"
- "error"
- "function"
- "null"
- "number"
- "object"
- "regexp"
- "string"
- "undefined"
Known issues:
typeof HTMLElementCollection
returns function in Safari, butY.Lang.type()
reports "object", which could be a good thing -- but it actually caused the logic inY.Lang.isObject
to fail.
Parameters:
-
o
Objectthe item to test.