function reverseString(text) {
    text = text.split('');
    var len = text.length,
        halfIndex = Math.floor(len / 2) - 1,
        revText;
    for (var i = 0; i <= halfIndex; i++) {
        revText = text[len - i - 1];
        text[len - i - 1] = text[i];
        text[i] = revText;
    }
    return text.join('');
}

function reverseStringNatively(text) {
    return (!text || text.length < 2) ? text : text.split('').reverse().join('');
}

function reverseWords(text) {
    var rev = [],
        wordLen = 0;
    for(var i = text.length-1; i>=0; i--){
        if(text[i]==' ' || i==0){
            rev.push(text.substr(i,wordLen+1));
            wordLen = 0;
        }
        else
            wordLen++;
    }
    return rev.join(' ');
}

function reverseWordsNatively(text) {
    return text.split(' ').reverse();
}

add methods for words reverse algorithm