function ReverseStringWithoutTemporaryVariable(str) {
let start = 0, end = str.length - 1;
let array = str.split("");
while (start < end) {
// XOR used to swap two variables
array[start] = String.fromCharCode(array[start].charCodeAt(0) ^ array[end].charCodeAt(0));
array[end] = String.fromCharCode(array[end].charCodeAt(0) ^ array[start].charCodeAt(0));
array[start] = String.fromCharCode(array[start].charCodeAt(0) ^ array[end].charCodeAt(0));
start++;
end--;
}
return array.join("");
}
let str = "javascript c++ c";
str = ReverseStringWithoutTemporaryVariable(str);
console.log(str);
/*
run:
"c ++c tpircsavaj"
*/