Saludos. Les presento la traducción del artículo "Mis trucos y consejos favoritos de JavaScript" publicado el 28 de julio de 2020 por Tapas Adhikary
La mayoría de los lenguajes de programación son lo suficientemente abiertos como para proporcionar a los desarrolladores la capacidad de hacer lo mismo de diferentes maneras. JavaScript no es una excepción. A menudo, tenemos diferentes formas de lograr el mismo resultado, lo que a veces incluso puede resultar confuso.
, . . , - .
1. , ()
"+
" – . , ( ) .
let name = 'Charlse';
let place = 'India';
let isPrime = bit => {
return (bit === 'P' ? 'Prime' : 'Nom-Prime');
}
// "+"
let messageConcat = 'Mr. ' + name + ' is from ' + place + '. He is a' + ' ' + isPrime('P') + ' member.'
( ) . , (``). . . , ${}
.
:
let name = 'Charlse';
let place = 'India';
let isPrime = bit => {
return (bit === 'P' ? 'Prime' : 'Nom-Prime');
}
//
let messageTemplateStr = `Mr. ${name} is from ${place}. He is a ${isPrime('P')} member.`
console.log(messageTemplateStr);
2. isInteger
, . JavaScript API "Number
" "isInteger()
". , .
let mynum = 123;
let mynumStr = "123";
console.log(`${mynum} is a number?`, Number.isInteger(mynum));
console.log(`${mynumStr} is a number?`, Number.isInteger(mynumStr));
:
3.
- , "event.target.value
" , "input
" "number
"?
. , , , , .
<input type='number' onkeyup="trackChange(event)" />
"event.target.value
". . - . , ( 16.56)? "parseFloat()
"? - !
function trackChange(event) {
let value = event.target.value;
console.log(`is ${value} a number?`, Number.isInteger(value));
}
, "event.target.valueAsNumber
".
let valueAsNumber = event.target.valueAsNumber;
console.log(`is ${value} a number?`, Number.isInteger(valueAsNumber));
4. AND
, .
let isPrime = true;
const startWatching = () => {
console.log('Started Watching!');
}
.
if (isPrime) {
startWatching();
}
AND (&&)? , "if
" . , ?
isPrime && startWatching();
5. OR
, OR.
let person = {name: 'Jack'};
// "age" "undefined", 35
let age = person.age || 35;
console.log(`Age of ${person.name} is ${age}`);
6.
– , . .
let planets = ['Mercury ', 'Mars', 'Venus', 'Earth', 'Neptune', 'Uranus', 'Saturn', 'Jupiter'];
let randomPlanet = planets[Math.floor(Math.random() * planets.length)];
console.log('Random Planet', randomPlanet);
let getRandom = (min, max) => {
return Math.round(Math.random() * (max - min) + min);
}
console.log('Get random', getRandom(0, 10));
learn.javascript.ru, , 2 , . .
7.
JavaScript . . "undefined
", .
. "message
" "greetings
" "Hello
".
let greetings = (name, message='Hello,') => {
return `${message} ${name}`;
}
console.log(greetings('Jack'));
console.log(greetings('Jack', 'Hola!'));
8.
, .
,
let isRequired = () => {
throw new Error('This is a mandatory parameter.');
}
, . , "undefined
", , .
let greetings = (name=isRequired(), message='Hello,') => {
return `${message} ${name}`;
}
console.log(greetings());
"name
" "undefined
", - , "isRequired()
". :
9. ""
, , .
JavaScript .
let count = 1;
let ret = (count++, count);
console.log(ret);
"ret
" 2. , 32.
let val = (12, 32);
console.log(val);
? ? "for
".
"j"
"i"
.
for (var i = 0, j = 50; i <= 50; i++, j--)
10.
, , . "...
" (, ).
:
let emp = {
'id': 'E_01',
'name': 'Jack',
'age': 32,
'addr': 'India'
};
let job = {
'title': 'Software Dev',
'location': 'Paris'
};
spread- ( ):
// spread-
let merged = {...emp, ...job};
console.log('Spread merged', merged);
. "Object.assign()
":
console.log('Object assign', Object.assign({}, emp, job));
:
, spread- "Object.assign
" (shallow) . , , .
, , , lodash
11.
– , .
, :\
let [fire, clock, , watermelon] = emojis;
, "let fire = emojis[0];
", . , "", ? , ?
console.log(fire, clock, watermelon);
:
, "rest
". , , , "...rest
", .
let [fruit, ...rest] = emojis;
console.log(rest);
:
,
let shape = {
name: 'rect',
sides: 4,
height: 300,
width: 500
};
, , .
let {name, sides, ...restObj} = shape;
console.log(name, sides);
console.log(restObj);
12.
, ,
let fire = '';
let fruit = '';
[fruit, fire] = [fire, fruit];
console.log(fire, fruit);
13. isArray
, ,
let emojis = ['', '️', '', ''];
console.log(Array.isArray(emojis));
let obj = {};
console.log(Array.isArray(obj));
14."'undefined" "null"
"undefined
" – , ,
"null
" – ,
"undefined
" "null
"
undefined === null // false
15. url-
"window.location
" . , , , url- .
,
window.location.search
La propiedad " search
" devuelve la parte de la cadena de URL después del signo de interrogación: " ?project=js
".
Para obtener parámetros de consulta, además de " location.search
", puede utilizar otra API útil llamada "URLSearchParams".
let project = new URLSearchParams(location.search).get('project');
Como resultado, obtenemos " js
"
Lea más sobre este tema aquí.
Este no es el fin
Hay muchas otras técnicas útiles. Decidí agregarlos al repositorio junto con pequeños ejemplos a medida que los encuentre.
¿Cuáles son tus trucos de JavaScript favoritos? ¿Qué tal compartirlos en los comentarios a continuación?