Posts

Showing posts from August, 2019

Regular expressions tricks and tips

Regex: Literal characters:  Alphanumeric character: itself \o: null character \t: tab \n: newline \v: vertical tab \f: form feed \r: carriage return \x nn: Latin character specified by a hexadecimal number \u xxxx: Unicode character specified by the hexadecimal number \c X: Control character  Character classes:  /[abc]/-  Any of a, b or c. /[^abc]/- None of a, b and c. /[a-z]/- Any char from a to z. /[a-zA-Z0-9]/- Any char from a-z, A-Z or 0-9. Note: ^ and $ have different meaning inside character classes. ^ means negation and $ behaves like a usual dollar symbol Eg: /a[b$]/: a$ or ab  Clasess: /w:  /[a-zA-Z0-9_]/ Any char from a-z, A-Z or 0-9. /W:  /[^a-zA-Z0-9_]/ Any char other than a-z, A-Z or 0-9. /s: Unicode whitespace /S: Any char other than whitespace charac /d: /[0-9]/ Any ascii digit /D: /[^0-9]/  [\b]: A literal backspace Repetition: {n,m}: Match the previous item at least n times but no more...

Array methods tips and tricks

shift and unshift arr.shift() – extracts an item from the beginning, arr.unshift(...items) – adds items to the beginning. splice:  The arr.splice(str) method is a swiss army knife for arrays. It can do everything: insert, remove and replace elements. arr.splice(index[, deleteCount, elem1, ..., elemN]) thisArg: Almost all array methods that call functions – like find, filter, map, with a notable exception of sort, accept an optional additional parameter thisArg. arr.find(func, thisArg); arr.filter(func, thisArg); arr.map(func, thisArg); // ... // thisArg is the optional last argument The value of thisArg parameter becomes this for func. concat: arr.concat(arg1, arg2...) argN: not always an array If an argument argN is an array, then all its elements are copied. Otherwise, the argument itself is copied. Eg: let arr = [1, 2]; alert( arr.concat([3, 4])); // 1,2,3,4 alert( arr.concat([3, 4], [5, 6])); // 1,2,3,4,5,6 alert( arr.concat([3, 4], 5, 6)); // 1,2,3,4,5,6 //one arg is an...

HTTP2 vs HTTP1

Image
In 2015, Internet Engineering Task Force (IETF) release HTTP/2, the second major version of the most useful internet protocol, HTTP. It was derived from the earlier experimental SPDY protocol. SPDY is a deprecated open-specification networking protocol that was developed primarily at Google for transporting web content. SPDY manipulates HTTP traffic, with particular goals of reducing web page load latency and improving web security Request multiplexing HTTP/2 can send multiple requests for data in parallel over a single TCP connection. This reduces additional round trip time (RTT),  making your website load faster  without any optimization, and makes  domain sharding  unnecessary. Header compression HTTP/2 compress a large number of redundant header frames. It uses the HPACK specification as a simple and secure approach to header compression. Both client and server maintain a list of headers used in previous client-server requests. Binary Protoco...