JavaScript 开发人员需要知道的简写技巧

2023-05-28 0 277

JavaScript 开发人员需要知道的简写技巧

责任编辑的目地是协助我们更为娴熟的利用 JavaScript 词汇来展开合作开发组织工作。

该文将分为最高阶篇和高阶篇两部份,依次展开如是说。

最高阶篇 1、长瓣操作符

上面是两个较好的范例,将两个完备的 if 句子,缩写为带队标识符。

const x = 20; let answer;

if (x > 10) { answer = greater than 10; } else { answer = less than 10; }

缩写为:

const answer = x > 10 ? greater than 10 : less than 10; 2、循环式句子

当采用纯 JavaScript(不倚赖内部库,如 jQuery 或 lodash)时,上面的缩写会十分管用。

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

缩写为:

for (let index of allImgs)

上面是结点字符串 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 3、声明变量

在函数开始之前,对变量展开赋值是一种较好的习惯。在申明多个变量时:

let x; let y; let z = 3;

可以缩写为:

let x, y, z=3;

4、if 句子

在采用 if 展开基本判断时,可以省略赋值操作符。

if (likeJavaScript === true)

缩写为:

if (likeJavaScript)

5、十进制数

可以采用科学计数法来代替较大的数据,如可以将 10000000 缩写为 1e7。

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

缩写为:

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

6、多行字符串

如果须要在标识符中编写多行字符串,就像上面这样:

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

但是还有两个更简单的方法,只采用引号:

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.`

高阶篇 1、变量赋值

当将两个变量的值赋给另两个变量时,首先须要确保原值不是 null、未定义的或空值。

可以通过编写两个包含多个条件的判断句子来实现:

if (variable1 !== null || variable1 !== undefined || variable1 !== ) { let variable2 = variable1; }

或者缩写为以下的形式:

const variable2 = variable1 || new;

可以将上面的标识符粘贴到 es6console 中,自己测试:

let variable1; let variable2 = variable1 || ; console.log(variable2 === ); // prints true

variable1 = foo; variable2 = variable1 || ; console.log(variable2); // prints foo

2、默认值赋值

如果预期参数是 null 或未定义,则不须要写六行标识符来分配默认值。我们可以只采用两个简短的逻辑操作符,只用带队标识符就能完成相同的操作。

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

缩写为:

const dbHost = process.env.DB_HOST || localhost;

3、对象属性

ES6 提供了两个很简单的办法,来分配属性的对象。如果属性名与 key 名相同,则可以采用缩写。

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

缩写为:

const obj = { x, y };

4、箭头函数

经典函数很容易读写,但是如果把它们嵌套在其它函数中展开调用时,整个函数就会变得有些冗长和混乱。这时候可以采用箭头函数来缩写:

function sayHello(name) { console.log(Hello, name); } setTimeout(function() { console.log(Loaded) }, 2000); list.forEach(function(item) { console.log(item); });

缩写为:

sayHello = name => console.log(Hello, name); setTimeout(() => console.log(Loaded), 2000); list.forEach(item => console.log(item));

5、隐式返回值

返回值是我们通常用来返回函数最终结果的关键字。只有两个句子的箭头函数,可以隐式返回结果(函数必须省略括号({ }),以便省略返回关键字)。

要返回多行句子(例如对象文本),须要采用()而不是{ }来包裹函数体。这样可以确保标识符以单个句子的形式展开求值。

function calcCircumference(diameter) {

return Math.PI * diameter }

缩写为:

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

6、默认参数值

可以采用 if 句子来定义函数参数的默认值。ES6 中规定了可以在函数声明中定义默认值。

function volume(l, w, h) {

if (w === undefined) w = 3;

if (h === undefined) h = 4; return l * w * h; }

缩写为:

volume = (l, w = 3, h = 4 ) => (l * w * h); volume(2) //output: 24 7、模板字符串

过去我们习惯了采用“+”将多个变量转换为字符串,但是有没有更简单的方法呢?

ES6 提供了相应的方法,我们可以采用反引号和 $ { } 将变量合成两个字符串。

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

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

缩写为:

const welcome = `You have logged in as ${first} ${last}`; const db = `http://${host}:${port}/${database}`;

8、解构赋值

解构赋值是一种表达式,用于从字符串或对象中快速提取属性值,并赋给定义的变量。

在标识符缩写方面,解构赋值能达到较好的效果。

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;

缩写为:

import { observable, action, runInAction } from mobx; const { store, form, loading, errors, entity } = this.props;

甚至可以指定自己的变量名:

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

9、展开操作符

展开运算符是在 ES6 中引入的,采用展开操作符能够让 JavaScript 标识符更为有效和有趣。

采用展开操作符可以替换某些字符串函数。

// joining arrays

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

// cloning arrays

const arr = [1, 2, 3, 4]; const arr2 = arr.slice( )

缩写为:

// 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];

和 concat( ) 功能不同的是,用户可以采用扩展操作符在任何两个字符串中插入另两个字符串。

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

也可以将展开操作符和 ES6 解构符号结合采用:

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 }

10、强制参数

默认情况下,如果不向函数参数传值,那么 JavaScript 会将函数参数设置为未定义。其它一些词汇则会发出警告或错误。要执行参数分配,可以采用if句子抛出未定义的错误,或者可以利用“强制参数”。

function foo(bar) {

if(bar === undefined) {

throw new Error(Missing parameter!); }

return bar; }

缩写为:

mandatory = ( ) => {

throw new Error(Missing parameter!); } foo = (bar = mandatory( )) => {

return bar; }

11、Array.find

如果你曾经编写过普通 JavaScript 中的 find 函数,那么你可能采用了 for 循环式。在 ES6 中,如是说了一种名为 find()的新字符串函数,可以实现 for 循环式的缩写。

const pets = [ { type: Dog, name: Max}, { type: Cat, name: Karl}, { type: Dog, name: Tommy}, ]function findDog(name) {

for(let i = 0; i

if(pets[i].type === Dog && pets[i].name === name) {

return pets[i]; } } }

缩写为:

pet = pets.find(pet => pet.type ===Dog && pet.name === Tommy); console.log(pet); // { type: Dog, name: Tommy }

12、Object [key]

虽然将 foo.bar 写成 foo [bar] 是一种常见的做法,但是这种做法构成了编写可重用标识符的基础。

请考虑上面这个验证函数的简化实例:

function validate(values) {

if(!values.first)

return false;

if(!values.last)

return false;

return true; } console.log(validate({first:Bruce,last:Wayne})); // true

上面的函数完美的完成验证组织工作。但是当有很多表单,则须要应用验证,此时会有不同的字段和规则。如果可以构建两个在运行时配置的通用验证函数,会是两个好选择。

// object validation rulesconst schema = { first: { required:true }, last: { required:true } } // universal validation function

const validate = (schema, values) => {

for(field in schema) {

if(schema[field].required) {

if(!values[field]) {

return false; } } }

return true; } console.log(validate(schema, {first:Bruce})); // false

console.log(validate(schema, {first:Bruce,last:Wayne})); // true

现在有了这个验证函数,我们就可以在所有窗体中重用,而无需为每个窗体编写自定义验证函数。

13、双位操作符

位操作符是 JavaScript 最高阶教程的基本知识点,但是我们却不常采用位操作符。因为在不处理二进制的情况下,没有人愿意采用 1 和 0。

但是双位操作符却有两个很实用的案例。你可以采用双位操作符来替代 Math.floor( )。双否定位操作符的优势是它执行相同的操作运行速度更快。

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

缩写为:

~~4.9 === 4 //true

写在最后

最近经常有很多程序员朋友问我有没有什么学习资料,尤其是前端还有php的。因为本人是学全栈的,所以手里是有一些前端还有PHP全套视频学习资料。这些资料绝对比那些在群里漫天飞的资料强多了。相信看完这些,你绝对可以找到一份好组织工作!

JavaScript 开发人员需要知道的简写技巧

为了感谢我们的支持,今天我在这里统一说下吧:

,就可以free领取上图价值3万元的全套视频学习资料!,一般人我不告诉他。JavaScript 开发人员需要知道的简写技巧

JavaScript 开发人员需要知道的简写技巧

JavaScript 开发人员需要知道的简写技巧JavaScript 开发人员需要知道的简写技巧

JavaScript 开发人员需要知道的简写技巧

JavaScript 开发人员需要知道的简写技巧

!!!

JavaScript 开发人员需要知道的简写技巧

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务