The practical native API summary in JavaScript
- 2020-06-12 08:30:10
- OfStack
Get right to business
Parse string object
We all know that JavaScript objects can be serialized to JSON and that JSON can also be parsed to objects, but the problem is that if a "thing" appears that is neither JSON nor an object and is not convenient to convert to either party, then eval can be used
var obj = "{a:1,b:2}"; // A string that looks like an object
eval("("+ obj +")") // {a: 1, b: 2}
Since eval can execute string expressions, we want to execute the string object obj as a real object, so we need eval. But to prevent eval from executing obj with {} as the statement, we wrap pairs () around obj and let it be parsed into expressions.
& (by bit and)
To determine whether a number is 2 to the n power, it can be subtracted from itself by 1
var number = 4
(number & number -1) === 0 // true
^ (bitwise or)
Instead of the third variable, you can exchange the values of the two variables
var a = 4,b = 3
a = a ^ b // 7
b = a ^ b // 4
a = b ^ a // 3
Formatting Date
Want time after format? No more get minutes, three steps
var temp = new Date();
var regex = /\//g;
(temp.toLocaleDateString() + ' ' + temp.toLocaleTimeString().slice(2)).replace(regex,'-');
// "2015-5-7 9:04:10"
Want to convert time after format to a time object? Use the Date constructor directly
new Date("2015-5-7 9:04:10");
// Thu May 07 2015 09:04:10 GMT+0800 (CST)
Want to convert a standard time object to an unix timestamp? valueOf fix of
(new Date).valueOf();
// 1431004132641
Many friends also remind you that you can get a timestamp quickly
+new Date
Add 1 yuan
1 dollar plus quickly converts a string number to a mathematical number, i.e
var number = "23"
typeof number // string
typeof +number // number
You can turn a time object into a timestamp
new Date // Tue May 12 2015 22:21:33 GMT+0800 (CST)
+new Date // 1431440459887
Escape URI
You need to pass url as a parameter in the route, and now escape it
var url = encodeURIComponent('http://segmentfault.com/questions/newest')
// "http%3A%2F%2Fsegmentfault.com%2Fquestions%2Fnewest"
The escape again
decodeURIComponent(url)
// "http://segmentfault.com/questions/newest"
Number
You want to keep a few decimal places behind the decimal point, so you don't have to do string interception, toFixed takes it away
var number = 4
(number & number -1) === 0 // true
0
Parameters range from 0 to 20, do not write the default 0
Type test
typeof is the most frequently used type detection method
var number = 4
(number & number -1) === 0 // true
1
This is fine for basic (simple) datatypes, but not so good once you reference datatypes
var number = 4
(number & number -1) === 0 // true
2
The first three are bearable and null returns object, are you kidding me!! (ps: In fact, this is the bug of JavaScript. The & # 65381; The & # 9697; The & # 65381; The & # 3665; The & # 42161; )
In this case, we will use instanceof
toString instanceof Function
// true
(new Date) instanceof Date
// true
[] instanceof Object
// true
[] instanceof Array
// true
In fact, we can see that [] and Object get true, although we know that [] is also an object, but we wanted a more accurate way to judge the type, and here it is
Using Object. prototype. toString(), in order for each object to pass the detection, we need to use Function. prototype. call or Function. prototype. apply to call
var number = 4
(number & number -1) === 0 // true
4
Note that the toString method is likely to be overridden, so when it is needed,
You can use the Object.prototype.toString () method directly
Implementation inheritance
Look at an official example
var number = 4
(number & number -1) === 0 // true
5
call gets the initialized properties and methods, and ES138en.create gets the properties and methods on the prototype object
The iteration
ES5 produces a lot of iterative functions, such as map, filter, some, every, reduce and so on
Array
api is detailed here.
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Glob...
Here are a few words:
join pop, push reverse, shift, sort, splice, unshift will change the original array
concat indexOf, lastIndexOf slice, toString will not change the original array
map filter, some every, reduce, forEach these iteration method does not change the original array
A few notes:
1 shift,pop will return the deleted element
splice returns an array of deleted elements, or an empty array
3 push returns the new array length
true stops when there is an true
5 every stops when there is an false
The above iteration method can append 1 parameter thisArg, which is the VALUE of this when callback is executed.
This is the end of this article, I hope you enjoy it.