Javascript is a very bad language, I may have learned fake Javascript, ha ha, we have any recommendations, add to send that what invitation code.
This article says: you can’t understand is you SB, I write the code will be awesome.
Write a rating component on a single line
“★★★★★ ★★★★★ ★★★★★ ★★★★★ ★ “. Define a variable rate with a value from 1 to 5, then execute the code above and look at the diagram
You realize the mods and stuff are too weak
Source:Answer from zhihu user Snail Laoshi
2, how to use code to call others SB
(! (~ + []) + {}) [- [~ + ""] + [[]] * [~ + []] + ~ ~! + []] + + [] ({}) [[~! + []] * ~ + []]Copy the code
To learn why:One line of JavaScript code that can be loaded
3, how to use code to prove their elegant NB
This is awesome
console.log(([][[]]+[])[+!![]]+([]+{})[!+[]+!![]])Copy the code
4. Correct postures in the way JavaScript errors are handled
😂 😂 😂, uncle take you
try {
something
} catch (e) {
window.location.href =
"http://stackoverflow.com/search?q=[js]+" +
e.message;
}Copy the code
Learn JavaScript from a line of code
[].forEach.call(? ("*"),function(a){ a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16) })Copy the code
That’s how it translates into normal language
Array.prototype.forEach.call(document.querySelectorAll('*'), #${parseInt(math.random () * math.pow (2,24)).tostring (16)} ')Copy the code
Next in the browser control watch: something magic happens
For detailed analysis, please refer to this article:Learn JavaScript from a single line of code
6. How to pick random strings gracefully
Math.random().toString(16).substring(2)
Math.random().toString(36).substring(2) Copy the code
7, (10)[“toString”]() === “10”
Please move to:Js bizarre techniques 1
8. Anonymous functions execute automatically
Which of these would you choose? I choose to die.
( function() {}() );
( function() {} )();
[ function() {}() ];
~ function() {}();
! function() {}();
+ function() {}();
- function() {}();
delete function() {}();
typeof function() {}();
void function() {}();
new function() {}();
new function() {};
var f = function() {}();
1, function() {}();
1 ^ function() {}();
1 > function() {}();
// ...Copy the code
9. Another kind of undefined
You never need to declare a variable to be undefined because JavaScript automatically sets an unassigned variable to undefined. So if you write that in code, you’ll be despised
var data = undefined;Copy the code
But if you are obsessive-compulsive, be sure to declare a variable that has no value for the time being and assign undefined. Here’s what you might consider:
var data = void 0; // undefinedCopy the code
Void is an operator in JavaScript that does not execute an incoming operation and returns undefined. Void can be followed by (), like void(0), doesn’t that look familiar? That’s right, when you block default hits with href in HTML, you like javascript:void(0).
Of course, the use of void is not recommended for practical purposes, except for coercion-related reasons, as it is intended to be compatible with the earlier ECMAScript standard without undefined. The way void 0 is written makes the code obscure.
On how to gracefully round
Var a = = 2.33 ~ 2.33 var b | 0 var c = 2.33 > > 0Copy the code
How to gracefully implement money formatting: 1234567890 –> 1,234,567,890
To achieve with regular magic:
var test1 = '1234567890' var format = test1.replace(/\B(? =(\d{3})+(? ! \d))/g, ',') console.log(format) // 1,234,567,890Copy the code
An elegant implementation of irregularity:
function formatCash(str) { return str.split('').reverse().reduce((prev, next, index) => { return ((index % 3) ? Next: (next + ',')) + prev})} console.log(formatCash('1234567890')) // 1,234,567,890Copy the code
This I take, and this you are very witty
I take
While (1) {alert(' you shut me down ')}Copy the code
You’re clever. What a cover-up
<a href="javascript:alert(' cleared successfully ');" > Clear cache </a>Copy the code
13. Comma operator
var a = 0; var b = ( a++, 99 ); console.log(a); // 1 console.log(b); / / 99Copy the code
How best to exchange values between two integers
General approach:
var a=1,b=2;
a += b;
b = a - b;
a -= b;Copy the code
The disadvantage is also obvious, integer data overflow, for 32-bit characters the maximum representation number is 2147483647, if 2147483645 and 2147483646 exchange fails. Black technology methods:
a ^= b;
b ^= a;
a ^= b;Copy the code
Ha ha 😄, do not understand the children’s shoes suggest to remedial C language bit operation, I will not go to review, before learning embedded when learning bit operation have forgotten
15. Deep copy of standard JSON
var a = {
a: 1,
b: { c: 1, d: 2 }
}
var b=JSON.parse(JSON.stringify(a))Copy the code
Standard JSON objects are useful without IE, but undefined and function are ignored.
16. Convert “1” strings to numbers without using Number, parseInt, and parseFloat and methods
Ha-ha, no casts allowed, so powerful implicit conversions come to mind
var a =1
+aCopy the code
17. How to write “Hello world!”
The scroll bar is very long 😯
([]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+(![]+[])[!+[]+!![]]+([]+{})[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+(!![]+[])[+[]]+([][[]]+[])[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]])())[+[]]+([][[]]+[])[!+[]+!![]+!![]]+(![]+[])[!+[]+!![]]+(![]+[])[!+[]+!![]]+([]+{})[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+([][[]]+[])[+[]]+([][[]]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(![]+[])[!+[]+!![]+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+([]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+(![]+[])[!+[]+!![]]+([]+{})[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+(!![]+[])[+[]]+([][[]]+[])[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]])())[!+[]+!![]+!![]]+([][[]]+[])[!+[]+!![]+!![]])()([][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(![]+[])[!+[]+!![]+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+([]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+(![]+[])[!+[]+!![]]+([]+{})[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+(!![]+[])[+[]]+([][[]]+[])[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]])())[!+[]+!![]+!![]]+([][[]]+[])[!+[]+!![]+!![]])()(([]+{})[+[]])[+[]]+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+[]))+([]+{})[+!![]]+(!![]+[])[+!![]]+(![]+[])[!+[]+!![]]+([][[]]+[])[!+[]+!![]]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+([][[]]+[])[+[]]+([][[]]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(![]+[])[!+[]+!![]+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+([]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+(![]+[])[!+[]+!![]]+([]+{})[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+(!![]+[])[+[]]+([][[]]+[])[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]])())[!+[]+!![]+!![]]+([][[]]+[])[!+[]+!![]+!![]])()([][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(![]+[])[!+[]+!![]+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+([]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+(![]+[])[!+[]+!![]]+([]+{})[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+(!![]+[])[+[]]+([][[]]+[])[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]])())[!+[]+!![]+!![]]+([][[]]+[])[!+[]+!![]+!![]])()(([]+{})[+[]])[+[]]+(!+[]+!![]+[])+(+!![]+[]))Copy the code
It works. Awesome implicit conversion
18, parseInt(0.0000008) === 8
19, ++[[]][+[]]+[+[]] == 10
Powerful implicit conversion, 23333
20, 0.1 + 0.2 == 0.3
0.1 +0.2 == 0.3 is actually not true… So that’s why the smallest unit of money in database storage is cents.
In short, the binary floating-point representations of 0.1 and 0.2 are not exact, so they are not 0.3 when added together and are close to (not equal to) 0.30000000000000004.
So, when you compare numbers, there should be a tolerance value. In ES6 this permissive value is predefined: number.epsilon.
21, the shortest code to achieve array deduplication
[...new Set([1, "1", 2, 1, 1, 3])]Copy the code
Shortly before the interview Ali asked this question, ha ha, so also write down
22, Use the shortest code to implement an array of length m(6) and values n(8)
Array(6).fill(8)Copy the code
This is short enough, it seems that I saw an interview question somewhere and thought of some API of ES6
23. Short circuit expression
conditional
Var && 1 / / same as if a = b (b) (a = 1} else {} a = b var = b | | 1 / / same as if (b) a = {b} else {1} a =Copy the code
JavaScript version of maze
Out of the Maze, 2333
25. Fetch the maximum and minimum values in an array
var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
var maxInNumbers = Math.max.apply(Math, numbers);
var minInNumbers = Math.min.apply(Math, numbers);Copy the code
26. Convert argruments objects into arrays
var argArray = Array.prototype.slice.call(arguments); ES6: var argArray = array. from(arguments)Copy the code
The Function constructor for javascript’s high-powered grid
Many JavaScript tutorials tell us not to use the constructor of the built-in object directly to create base variables, such as var arr = new Array(2); Var arr = [1, 2]; Instead of writing.
However, the Function constructor (note the uppercase Function) is a bit special. The Function constructor takes the first parameter name to pass in, and the second is the code inside the Function (expressed as a string).
var f = new Function('a', 'alert(a)'); f('jawil'); // A pop-up window will display jawilCopy the code
Isn’t it a nice way to create a function based on the content of the incoming string? !
Find a number from an array, O(n) algorithm, if not found, return null.
Normal version:
function find (x, y) {
for ( let i = 0; i < x.length; i++ ) {
if ( x[i] == y ) return i;
}
return null;
}
let arr = [0,1,2,3,4,5]
console.log(find(arr, 2))
console.log(find(arr, 8))Copy the code
The result is that the function looks like this (as if the code above is visible below, but a little different, in order to get rid of the if language and make it look more like an expression, use? Sign expression) :
/ / functional version of the const find = = > f (f (f)) (f = > (next = > (x, y, I = 0) = > (I > = x.l ength)? null : ( x[i] == y ) ? i : next(x, y, i+1))((... args) => (f(f))(... Args)) let arr = [0,1,2,3,4,5] console.log(find(arr, 2)) console.log(find(arr, 8))Copy the code
How to read and write loaded functional code
Finally advise everyone 1: mo pack force, white young head, 2333… The original post was posted on my GitHub blog (github.com/jawil/blog), you can pay attention to the latest trends, we can communicate and learn together, common progress, to the identity of learners blog, record bit by bit.