分享几个常用的JS小技巧

203 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

简写循环

 
const array = ["a", "b", "c"];

for (let i = 0; i < array.length; i++) {
  const item = array[i];
  console.log(item);
}
 
const array = ["a", "b", "c"];

for (let item of array) console.log(item);
 

数字转换成字符串

let num = 5
let newNum = num.toString();

const val = 3 + "";

console.log(val); // Output: "3"

console.log(typeof val); // Output: "string"

字符串转换成数字

let num = "6"
let stringNumber = Number(num);
let int = "16";
int = +int;

console.log(int); // Output: 16
console.log(typeof int); //Output: "number"

将布尔转换成数字

console.log(+true);  // Return: 1
console.log(+false); // Return: 0

把一个变量转换成布尔值

console.log(!!""); // Output: false
console.log(!!" "); // Output: true
console.log(!!0); // Output: false
console.log(!!1); // Output: true

数组的from方法

let students = [
    { name: ‘Rahim’, age: 7 },
    { name: ‘Mac, age: 9 },
    { name: ‘Bruno’, age: 7 },
    { name: ‘Jucas’, age: 9 },
    { name: ‘Sana’, age: 8 },
    { name: ‘Sara’, age: 7 },
]

let studentsNames = Array.from(students, ({name}) => name);
console.log(studentsNames); // returns [“Rahim”, “Mac”, “Bruno”, “Jucas”, “Sana’”,“Sara”]


数组去重

 
const array = [1, 1, 2, 3, 5, 5, 1]
const uniqueArray = [...new Set(array)];

console.log(uniqueArray); // Output: [1, 2, 3, 5]
 

四舍五入

console.log( 28 >> 1 ); // 14
console.log( 29 >> 1 ); // 14
console.log( 4 >> 1); // 2
console.log( 5 >> 1); // 2

获取特定范围内的随机数

 
var x = Math.floor(Math.random() * (max - min + 1)) + min;
 

e的使用

console.log( 1e5 ); // 100000
console.log( 3e1); // 30

判断是否是整数

let mynum = 253;
let mynumStr = "253";

console.log(`${mynum} is a number?`, Number.isInteger(mynum)); //253 is a number? true
console.log(`${mynumStr} is a number?`, Number.isInteger(mynumStr)); //253 is a number? false

变量交换

let name = 'Mike';
let fruit = 'Apple';

[fruit, name] = [name, fruit];
console.log(name, fruit);

解构赋值

 
let { bar, foo } = { foo: 'aaa', bar: 'bbb' };
foo // "aaa"
bar // "bbb"

let { baz } = { foo: 'aaa', bar: 'bbb' };
baz // undefined