JS代码编写小技巧

常量使用const代替var

常量是永远不变的变量,这样声明变量可以确保它们永远不变。

/* 旧方法 */
var i = 1;

/* 正确方式 */
const i = 1;

正则校验必须以星号或者.开头

/^(\*|\.).*/

JS合并两个对象

//方法一拓展运算符,后面相同的属性覆盖前一个
	let arr3={...arr1,...arr2};
	//方法一拓展运算符,后面相同的属性覆盖前一个

	//方法二Object.assign(),后面相同的属性覆盖前一个
	let arr3=Object.assign(arr1,arr2);
	//方法二Object.assign(),后面相同的属性覆盖前一个

	//方法三Object.keys(),相同的属性只取第一个
	Object.keys(arr1).forEach(key => {
		arr2[key] = arr1[key]
	})

使用let替换变量,而不是var

let语句声明了一个具有块作用域的局部作用域变量

/* 不适当的*/
var myVal = 1;
for (var i; i < 10; i++){
  myVal = 1 + i;
}

/* 正确方式*/
let myVal = 1;
for (let i; i < 10; i++){
  myVal += i
}

声明对象

用快捷方式声明对象

/* 
  旧方法
  The Object() class makes an unnecessary function call
*/

const myObject = new Object();
/* 正确方式*/
const myObject = {};

连接字符串

/* 旧方法 */
const myStringToAdd = "world";
const myString = "hello " + myStringToAdd;


/* 正确方式*/
const myStringToAdd = "world";
const myString = `hello ${myStringToAdd}`;

使用对象方法

/* 不适当 */
const customObject = {
  val: 1,
  addVal: function () {
   return customObject.val + 1;
  }
}

/* 正确方式*/
const customObject = {
  val: 1,
  addVal(){
    return customObject.val++
  }
}**加粗文字**

创建对象的值

/* 旧方法*/
const value = 1;
const myObject = {
  value: value
}
/* 正确方式*/
const value = 1;
const myObject = {
  value
}

给对象赋值

/* 旧方法 */
const object1 = { val: 1, b: 2 };
let object2 = { d: 3, z: 4 };
object2.val = object1.val;
object2.b = object1.b;

/* 正确方式 */
const object1 = { val: 1, b: 2 };
const object2 = { ...object1, d: 3, z: 4 }

给数组赋值

/* 不适当*/
const myArray = [];
myArray[myArray.length] = "hello world";


/* 正确方式 */
const myArray = [];
myArray.push('Hello world');

连接数组

/* 不适当*/
const array1 = [1,2,3,4];
const array2 = [5,6,7,8];
const array3 = array1.concat(array2);


/* 正确方式 */
const array1 = [1,2,3,4];
const array2 = [5,6,7,8];
const array3 = [...array1, ...array2]

获取对象的多个属性

/* 不适当*/
function getFullName(client){
  return `${client.name} ${client.last_name}`;
}

/* 正确方式 */
function getFullName({name, last_name}){
  return `${name} ${last_name}`;
}

从对象获取值

/* 不适当*/
const object1 = { a: 1 , b: 2 };
const a = object1.a;
const b = object1.b;

/* 正确方式 */
const object1 = { a: 1 , b: 2 };
const { a, b } = object1;

创建函数

/* 老办法,但很好 */
function myFunc() {}

/* 很好*/
const myFunc = function() {}

/* 最好 */
const myFunct = () => {}

// 重要说明:在某些情况下,建议不要将这些函数与箭头一起使用,以避免读取错误

默认值

/* 不适当*/
const myFunct = (a, b) => {
  if (!a) a = 1;
  if (!b) b = 1;
  return { a, b };
}

/* 正确方式 */
const myFunct = (a = 1, b = 1) => {
  return { a, b };
}

使用reduce代替forEach和for来求和

/* 不适当*/
const values = [1, 2, 3, 4, 5];
let total = 0;
values.forEach( (n) => { total += n})

/* 不适当*/
const values = [1, 2, 3, 4, 5];
let total = 0;
for (let i; i < values.length; i++){
  total += values[i];
}

/* 正确方式 */
const values = [1, 2, 3, 4, 5];
const total = values.reduce((total, num) => total + num);

是否存在数组中

/* 不适当*/
const myArray = [{a: 1}, {a: 2}, {a: 3}];
let exist = false;
myArray.forEach( item => {
 if (item.a === 2) exist = true
})

/* 正确方式 */
const myArray = [{a: 1}, {a: 2}, {a: 3}];
const exist = myArray.some( item => item.a == 2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shero.李建业

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值