minxomat

zQuery - Doing things 'newschool'

3 posts in this topic

Modern JS is great and does all sorts of things. Some of them have been in browser engines for years. Sometimes you just don't need jQuery (a huge library often just included for the sake of it). jQ has become so ubiquitous that some JS entry level devs think it's a completely different language.

zQuery (long name zeroQuery) is an attempt to inform about old and new techniques that all have two things in common:

  • The don't use jQuery, but have the same functionality, and
  • they're faster, have wider support or are just cooler in general[citation needed]

zQuery is a essentially a cheat-sheet, a quick reference, to build your own atomic APIs for whatever you are developing, without jQuery. It doesn't only contain plain JS alternatives, but also neat JS hacks (unlike the similar youdontneedjquery).

You can find zQuery at the (share-friendly ;) ) URL git.io/zQuery. Star it, read it, and if you have something in mind, contribute!

An example plain JS plugin that uses zQuery techniques is my context-menu plugin justContext.js.

1 person likes this

I will answer every single PM, and you are free to ask anything anytime.

Share this post


Link to post
Share on other sites



Thanks to another contributor, zQuery now has even more ES6.


I will answer every single PM, and you are free to ask anything anytime.

Share this post


Link to post
Share on other sites

Nice.

/**
 * An advanced variation of typeOf, that returns the classname instead of the primitive datatype e.g. 'array', 'date', 'null', 'regexp', 'string'
 *
 * @param {mixed} value Variable to check
 * @return {string} Classname of the value
 */
var type = (function typeModule(Object) {
    var _objectToString = Object.prototype.toString;

    // Parsing the native toString() return value e.g. [object Object]
    var _reTypeOf = /(?:^\[object\s(.*?)\]$)/;

    // Cache the classname types
    var _types = Object.create(null);

    return function type(value) {
        if (value === null || value === undefined) {
            return ('' + value);
        }

        var type = typeof value;
        if (type !== 'function' && type !== 'object') {
            return type;
        }

        var classString = _objectToString.call(value);

        // Check the internal cache
        type = _types[classString];
        if (type) {
            return type;
        }

        type = classString.replace(_reTypeOf, '$1').toLowerCase();

        // Set the internal cache
        _types[classString] = type;

        return type;
    };
}(Object));

I didn't send a PR, as this is quite long and not really a native alternative. It's also ES5 as not everyone is ready for the awesome ES2015.

1 person likes this

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now