This article mainly shares 19 useful JavaScript abbreviation techniques with you, hoping to help everyone.
1. Ternary operator
When you want to write an if...else statement, use the ternary operator instead.
1 | <span style= "font-size: 16px;" > const x = 20;<br>let answer;<br> if (x > 10) {<br> answer = 'is greater' ;<br>} else {<br> answer = 'is lesser' ;<br>}<br></span>
|
Copy after login
Abbreviation:
<span style="font-size: 16px;">const answer = x > 10 ? 'is greater' : 'is lesser';</span>
You can also nest if statements:
<span style="font-size: 16px;">const big = x > 10 ? " greater 10" : x</span>
2. Short-circuit evaluation abbreviation
When assigning another value to a variable, you want to make sure that the original value is not null, undefined or empty. You can write a multi-condition if statement.
1 | <span style= "font-size: 16px;" > if (variable1 !== null || variable1 !== undefined || variable1 !== '' ) {<br> let variable2 = variable1;<br>}<br></span>
|
Copy after login
Or you can use the short-circuit evaluation method:
<span style="font-size: 16px;">const variable2 = variable1 || 'new';</span>
3. Abbreviated method of declaring variables
1 | <span style= "font-size: 16px;" >let x;<br>let y;<br>let z = 3;<br></span>
|
Copy after login
Abbreviated method:
<span style="font-size: 16px;">let x, y, z=3 ;</span>
4.if exists condition abbreviation method
##if (likeJavaScript === true)<span style="font-size: 16px;"></span>
Abbreviation:
if (likeJavaScript)<span style="font-size: 16px;"></span>
only when likeJavaScript is true , the two statements are equal
If the judgment value is not a true value, you can do this:
1 | <span style= "font-size: 16px;" >let a;<br> if ( a !== true ) {<br>
|
Copy after login
Abbreviation:
1 | <span style= "font-size: 16px;" >let a;<br> if ( !a ) {<br>
|
Copy after login
5. JavaScript loop abbreviation method
for (let i = 0; i < allImgs.length; i++)<span style="font-size: 16px;"></span>
Abbreviation:
for (let index in allImgs)<span style="font-size: 16px;"></span>
You can also use Array.forEach:
1 | <span style= "font-size: 16px;" > function logArrayElements(element, index, array ) {<br/> console.log( "a[" + index + "] = " + element);<br/>}<br/>[2, 5, 9].forEach(logArrayElements);<br/>
|
Copy after login
6. Short-circuit evaluation
The value assigned to a variable is determined by judging whether the value is null or undefined, then you can:
1 | <span style= "font-size: 16px;" >let dbHost;<br/> if (process.env.DB_HOST) {<br/> dbHost = process.env.DB_HOST;<br/>} else {<br/> dbHost = 'localhost';<br/>}<br/></span>
|
Copy after login
Abbreviation:
const dbHost = process.env.DB_HOST || 'localhost';<span style="font-size: 16px;"></span>
7. Decimal exponent
When you need to write a number with many zeros (such as 10000000), you can use the exponent (1e7) to replace this number:
for (let i = 0; i < 10000; i++) {}<span style="font-size: 16px;"></span>
Abbreviation:
1 | <span style= "font-size: 16px;" > for (let i = 0; i < 1e7; i++) {}<br/><br/>
|
Copy after login
8. Object attribute abbreviation
If the attribute name is the same as the key name, you can use the ES6 method:
const obj = { x: x, y:y };<span style="font-size: 16px;"></span>
Abbreviation:
const obj = { x, y };<span style="font-size: 16px;"></span>
9. Arrow function abbreviation
The traditional function writing method is easy for people to understand and write, but when nested in another function, then These advantages are gone.
1 | <span style= "font-size: 16px;" > function sayHello(name) {<br/> console.log('Hello', name);<br/>}<br/><br/>setTimeout( function () {<br/> console.log('Loaded')<br/>}, 2000);<br/><br/>list.forEach( function (item) {<br/> console.log(item);<br/>});<br/></span>
|
Copy after login
Abbreviation:
1 2 3 4 5 6 | <span style= "font-size: 16px;" >sayHello = name => console.log( 'Hello' , name);<br><br>setTimeout(() => console.log( 'Loaded' ), 2000);<br><br>list.forEach(item => console.log(item));<br></code></p>
<h2>10. Implicit return value abbreviation<span style= "font-size: 16px;" ></span>
</h2>
<p>Return is often used statement to return the final result of a function , an arrow function with a single statement can implicitly return its value (the function must omit {} in order to omit the return keyword) <span style= "font-size: 16px;" ></span></p>
<p> is a statement that returns multiple lines ( for example Object literal expression), you need to surround the function body with (). <span style= "font-size: 16px;" ></span></p>
<pre class = "brush:php;toolbar:false" ><span style= "font-size: 16px;" > function calcCircumference(diameter) {<br> return Math.PI * diameter<br>}<br><br> var func = function func() {<br> return { foo: 1 };<br>};<br></span>
|
Copy after login
Abbreviation:
1 | <span style= "font-size: 16px;" >calcCircumference = diameter => (<br> Math.PI * diameter;<br>)<br><br> var func = () => ({ foo: 1 });<br></span>
|
Copy after login
11.Default parameter value
In order to provide parameters in the function Passing default values is usually written using if statements, but using ES6 to define default values will be very concise:
1 | <span style= "font-size: 16px;" > function volume(l, w, h) {<br> if (w === undefined)<br> w = 3;<br> if (h === undefined)<br> h = 4;<br> return l * w * h;<br>}<br></span>
|
Copy after login
Abbreviation:
1 | <span style= "font-size: 16px;" >volume = (l, w = 3, h = 4 ) => (l * w * h);<br><br>volume(2)
|
Copy after login
12. Template string
In traditional JavaScript language, the output template is usually written like this.
1 | <span style= "font-size: 16px;" > const welcome = 'You have logged in as ' + first + ' ' + last + '.' <br><br> const db = 'http://' + host + ':' + port + '/' + database;<br></span>
|
Copy after login
ES6 can use backticks and ${} abbreviation:
1 | <span style= "font-size: 16px;" > const welcome = `You have logged in as ${first} ${last}`;<br><br> const db = `http:
|
Copy after login
13.解构赋值简写方法
在web框架中,经常需要从组件和API之间来回传递数组或对象字面形式的数据,然后需要解构它
1 | <span style= "font-size: 16px;" > const observable = require ( 'mobx/observable' );<br> const action = require ( 'mobx/action' );<br> const runInAction = require ( 'mobx/runInAction' );<br><br> const store = this.props.store;<br> const form = this.props.form;<br> const loading = this.props.loading;<br> const errors = this.props.errors;<br> const entity = this.props.entity;<br></span>
|
Copy after login
简写:
1 | <span style= "font-size: 16px;" >import { observable, action, runInAction } from 'mobx' ;<br><br> const { store, form, loading, errors, entity } = this.props;<br></span>
|
Copy after login
也可以分配变量名:
1 | <span style= "font-size: 16px;" > const { store, form, loading, errors, entity:contact } = this.props;<br>
|
Copy after login
14.多行字符串简写
需要输出多行字符串,需要使用+来拼接:
1 | <span style= "font-size: 16px;" > const lorem = 'Lorem ipsum dolor sit amet, consectetur\n\t' <br> + 'adipisicing elit, sed do eiusmod tempor incididunt\n\t' <br> + 'ut labore et dolore magna aliqua. Ut enim ad minim\n\t' <br> + 'veniam, quis nostrud exercitation ullamco laboris\n\t' <br> + 'nisi ut aliquip ex ea commodo consequat. Duis aute\n\t' <br> + 'irure dolor in reprehenderit in voluptate velit esse.\n\t' <br></span>
|
Copy after login
使用反引号,则可以达到简写作用:
1 | <span style= "font-size: 16px;" > const lorem = `Lorem ipsum dolor sit amet, consectetur<br> adipisicing elit, sed do eiusmod tempor incididunt<br> ut labore et dolore magna aliqua. Ut enim ad minim<br> veniam, quis nostrud exercitation ullamco laboris<br> nisi ut aliquip ex ea commodo consequat. Duis aute<br> irure dolor in reprehenderit in voluptate velit esse.`<br></span>
|
Copy after login
15.扩展运算符简写
扩展运算符有几种用例让JavaScript代码更加有效使用,可以用来代替某个数组函数。
1 | <span style= "font-size: 16px;" >
|
Copy after login
简写:
1 | <span style= "font-size: 16px;" >
|
Copy after login
不像concat()函数,可以使用扩展运算符来在一个数组中任意处插入另一个数组。
1 | <span style= "font-size: 16px;" > const odd = [1, 3, 5 ];<br> const nums = [2, ...odd, 4 , 6];<br></span>
|
Copy after login
也可以使用扩展运算符解构:
1 | <span style= "font-size: 16px;" > const { a, b, ...z } = { a: 1, b: 2, c: 3, d: 4 };<br>console.log(a)
|
Copy after login
16.强制参数简写
JavaScript中如果没有向函数参数传递值,则参数为undefined。为了增强参数赋值,可以使用if语句来抛出异常,或使用强制参数简写方法。
1 | <span style= "font-size: 16px;" > function foo(bar) {<br> if (bar === undefined) {<br> throw new Error( 'Missing parameter!' );<br> }<br> return bar;<br>}<br></span>
|
Copy after login
简写:
1 | <span style= "font-size: 16px;" >mandatory = () => {<br> throw new Error( 'Missing parameter!' );<br>}<br><br>foo = (bar = mandatory()) => {<br> return bar;<br>}<br></span>
|
Copy after login
17.Array.find简写
想从数组中查找某个值,则需要循环。在ES6中,find()函数能实现同样效果。
1 | <span style= "font-size: 16px;" > const pets = [<br> { type: 'Dog' , name: 'Max' },<br> { type: 'Cat' , name: 'Karl' },<br> { type: 'Dog' , name: 'Tommy' },<br>]<br><br> function findDog(name) {<br> for (let i = 0; i<pets.length; ++i) {<br/> if (pets[i].type === 'Dog' && pets[i].name === name) {<br/> return pets[i];<br/> }<br/> }<br/>}<br/></span>
|
Copy after login
简写:
1 | <span style= "font-size: 16px;" >pet = pets.find(pet => pet.type === 'Dog' && pet.name === 'Tommy' );<br>console.log(pet);
|
Copy after login
18.Object[key]简写
考虑一个验证函数
1 | <span style= "font-size: 16px;" > function validate(values) {<br> if (!values.first)<br> return false;<br> if (!values.last)<br> return false;<br> return true;<br>}<br><br>console.log(validate({first: 'Bruce' ,last: 'Wayne' }));
|
Copy after login
假设当需要不同域和规则来验证,能否编写一个通用函数在运行时确认?
1 | <span style= "font-size: 16px;" >
|
Copy after login
现在可以有适用于各种情况的验证函数,不需要为了每个而编写自定义验证函数了
19.双重非位运算简写
有一个有效用例用于双重非运算操作符。可以用来代替Math.floor(),其优势在于运行更快,可以阅读此文章了解更多位运算。
<span style="font-size: 16px;">Math.floor(4.9) === 4 //true</span>
简写:
<span style="font-size: 16px;">~~4.9 === 4 //true</span>
相关推荐:
js判断是否为空字符串的简写方法实例详解
js的简写写法介绍
怎么简写php 中的三元运算符
The above is the detailed content of 19 useful shorthand techniques for JavaScript. For more information, please follow other related articles on the PHP Chinese website!