[JS foundation] 16 elegantes habilidades de taquigrafía de JavaScript

16 elegantes consejos de taquigrafía de JavaScript


Operador ternario

Cuando desee escribir declaraciones if ... else, use operadores ternarios en su lugar

const x = 20;
let answer;
if(x > 10) {
    
    
  answer = 'is greater';
} else {
    
    
  answer = 'is lesser';
}

Taquigrafía:const answer = x > 10 ? 'is greater' : 'is lesser'


Taquigrafía de evaluación de cortocircuito

Al asignar otro valor a una variable, desea asegurarse de que el valor original no sea nulo, indefinido o vacío. Puede escribir una declaración if con múltiples condiciones

if(a !== null || a !== undefined || a !== '') {
    
    
  let b = a;
}

O puede utilizar el método de evaluación de cortocircuito:const b = a || 'new'

Método abreviado de declaración de variables

let x;
let y;
let z = 3;

Método taquigráfico: let x, y, z = 3

Método abreviado para la condición de existencia if

if(a === true)

Taquigrafía: if(a)

Las dos oraciones son iguales solo cuando a es verdadera

Si el valor de juicio no es verdadero, puede hacer esto:

let a;
if (a !== true) {
    
    
  // do something...
}

Taquigrafía:

let a;
if(!a) {
    
    
  // do something...
}

Método abreviado de bucle de JavaScript

for(let i = 0; i < allImgs.length; i++)

Taquigrafía: for (let index in allImgs)también puede utilizar Array.forEach:

function logArrayElements(element, index, array) {
    
    
  console.log("a[" + index + "]=" + element);
}

[2, 5, 9].forEach(logArrayElements);

// logs;
// a[0] = 2
// a[1] = 5
// a[2] = 9

Evaluación de cortocircuito

Para asignar un valor a una variable juzgando si su valor es nulo o no definido, puede:

let dbHost;
if (process.env.DB_HOST) {
    
    
  dbHost = process.env.DB_HOST;
} else {
    
    
  dbHost = 'localhost';
}

Taquigrafía:const dbHost = process.env.DB_HOST || 'localhost'


Exponente decimal

Cuando necesite escribir un número con muchos ceros (como 10000000), puede usar un exponente (1e7) para reemplazar este número: for (let i = 0; i < 10000; i++) {}abreviado:

for(let i = 0; i < 1e7; i++) {
    
    }

// 下面都是返回 true
1e0 === 1;
1e1 === 10;
1e2 === 100;
1e3 === 1000;
1e4 === 10000;
1e5 === 100000;

Taquigrafía de atributos de objeto

Si el nombre del atributo es el mismo que el nombre de la clave, puede utilizar el método ES6:

const obj = {
    
     x:x, y:y }

Taquigrafía:const obj = { x, y }

Función de flecha taquigrafía

Los métodos tradicionales de escritura de funciones son fáciles de entender y escribir para las personas, pero cuando se anidan en otra función, estas ventajas se pierden.

function sayHello(name) {
    
    
  console.log('Hello', name)
}

setTimeout(function() {
    
    
  console.log('Loaded')
}, 2000)

list.forEach(function (item) {
    
    
  console.log(item)
})

Taquigrafía:

sayHello = name => console.log('Hello', name)

setTimeout(() => console.log('Loaded'), 2000)

list.forEach(item => console.log(item))

Taquigrafía de valor de retorno implícito

La declaración de retorno se usa a menudo para devolver el resultado final de una función. La función de flecha de una sola declaración puede devolver implícitamente su valor (la función debe omitir {} para omitir la palabra clave de retorno)

Para devolver declaraciones de varias líneas (como expresiones literales de objetos), debe usar () para rodear el cuerpo de la función.

function calcCircumference(diameter) {
    
    
  return Math.PI * diameter
}

var func = function func() {
    
    
  return {
    
     foo: 1 }
}

Taquigrafía:

calcCircumference = diameter => (
  Math.PI * diameter
)

var func = () => ({
    
     foo: 1 })


Valor de parámetro predeterminado

Para pasar el valor predeterminado al parámetro en la función, generalmente se escribe usando la instrucción if, pero usando ES6 para definir el valor predeterminado, será muy conciso:

function volume(l, w, k) {
    
    
  if(w === undefined) 
    w = 3;
  if(h === undefined)
    k = 4;
  return l * w * k
}

Taquigrafía:

volume = (l, w = 3, k = 4) => (l * w * h);
volume(2) // 输出: 24

Cadena de plantilla

Lenguaje JavaScript tradicional, la plantilla de salida generalmente se escribe así

const welcome = 'You have logged in as' + first + ' ' + last + '.'

const db = 'http://' + host + ':' + port + '/' + database;

ES6 puede usar comillas invertidas y la abreviatura $ {}:

const welcome = `You have logged in as ${
      
      first} ${
      
      last}`

const db = `http://${
      
      host}:${
      
      port}/${
      
      database}`;

Método abreviado para la desestructuración de la asignación

En los marcos web, a menudo es necesario pasar datos en forma de matrices u objetos entre componentes y API, y luego es necesario deconstruirlos

const observable = require('mobx/observable')
const action = require('mobx/action')
const runInAction = require('mobx/runInAction')

const store = this.props.store
const form = this.props.form
const loading = this.props.loading
const errors = this.props.errors
const entity = this.props.entity

Taquigrafía:

import {
    
     observable, action, runInAction } from 'mobx'

const {
    
     store, form, loading, errors, entity } = this.props

También puede asignar nombres de variables:

const {
    
     store, form, loading, errors, entity:contact } = this.props

Taquigrafía de cuerdas de varias líneas

Necesita generar cadenas de varias líneas, debe usar + para empalmar:

const lorem = 'Lorem ipsum dolor sit amet, consectetur\n\t'
    + 'adipisicing elit, sed do eiusmod tempor incididunt\n\t'
    + 'ut labore et dolore magna aliqua. Ut enim ad minim\n\t'
    + 'veniam, quis nostrud exercitation ullamco laboris\n\t'
    + 'nisi ut aliquip ex ea commodo consequat. Duis aute\n\t'
    + 'irure dolor in reprehenderit in voluptate velit esse.\n\t'

Con las comillas invertidas, puede lograr un efecto taquigráfico:

const lorem = `Lorem ipsum dolor sit amet, consectetur
	   adipisicing elit, sed do eiusmod tempor incididunt
	   ut labore et dolore magna aliqua. Ut enim ad minim
	   veniam, quis nostrud exercitation ullamco laboris
	   nisi ut aliquip ex ea commodo consequat. Duis aute
	   irure dolor in reprehenderit in voluptate velit esse.`

Abreviatura de operador de propagación

Hay varios casos de uso para que el operador de propagación haga que el código JavaScript sea más efectivo y se puede usar para reemplazar una función de matriz

// joining arrays
const odd = [1,3,5]
const nums = [2,4,6].concat(odd)

// cloning array
const arr = [1,2,3,4]
const arr2 = arr.slice()

Taquigrafía:

// joining arrays
const odd = [1,3,5]
const nums = [2,4,6,...odd]
console.log(nums); // [2,4,6,1,3,5]

// cloning arrays
const arr = [1,2,3,4]
const arr2 = [...arr];

A diferencia de la función concat (), puede usar el operador de extensión para insertar otra matriz en cualquier lugar de una matriz

const odd = [1,3,5]
const nums = [2,...odd,4,6]

También puede utilizar la desestructuración del operador de propagación:

const {
    
    a,b,...z} = {
    
    a:1,b:2,c:3,d:4}
console.log(a) // 1
console.log(b) // 2
console.log(z) // {c:3,d:4}

Taquigrafía para operación doble sin bits

Existe un caso de uso válido para el operador de doble negación. Se puede usar en lugar de Math.floor (), su ventaja es que se ejecuta más rápido, puede leer este artículo para obtener más información sobre las operaciones de bits.

Math.floor(4.9) === 4 // true

Taquigrafía:

~~4.9 === 4 // true

Supongo que te gusta

Origin blog.csdn.net/weixin_43352901/article/details/108712867
Recomendado
Clasificación