【面试题】前端应该了解的个JavaScript技巧有什么?

简介: 【面试题】前端应该了解的个JavaScript技巧有什么?

前端面试题库 (面试必备)            推荐:★★★★★

地址:前端面试题库

【国庆头像】- 国庆爱国 程序员头像!总有一款适合你!

简介

如果你用这些技巧优化你的js码,它可以帮助你编写更干净、整洁、易维护的代码,为你节省编程时间。

1、灵活使用 &&|| 代替if

在一些简单的情况下,你可以使用逻辑运算符&&|| 代替if。

代码列子1:

    // 繁琐的
    if (isGetData) {
      this.getData();
    }
    // 好的
    isGetData && this.getData();

代码列子2:

     // 繁琐的
    if (res.data) {
      return res.data;
    } else {
      return [];
    }
    // 好的
    return res.data || [];

2、~~运算符取整

~是按位取反运算,~~是取反两次,在这里~~的作用是去掉小数部分

因为位运算的操作值要求是整数,其结果也是整数,所以经过位运算的都会自动变成整数

道理与用运算符把任意类型转化为 Boolean 类似

代码列子1:

    let a = 1;
    // 利用!!将a转换成 Boolean 值
    a = !!a; // true
    a = 0;
    a = !!a; // false
    a = {}
    a = !!a; // true

代码列子2:使用 ~~ 代替 Math.floor()

    // 取整
    Math.floor(Math.random() * 50);
    // 取整
    ~~(Math.random() * 50);
    ~~'1.11111'; // 1
    ~~'whitedress1'; //  0
    ~~NaN; //  0

3、灵活使用 array.length 调整数组长度或清空数组

有时你需要调整数组长度或清空数组。最有效的方法是使用Array.length

代码列子:

    const array = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];
    console.log(array.length); //  10
    // 调整数组大小
    array.length = 4;
    console.log(array.length); //  4
    console.log(array); // ['a', 'b', 'c', 'd']
    // 清空数组
    array.length = 0;
    console.log(array.length); //  0
    console.log(array); // []

4、如何高效处理数组合并

合并数组时,可能会对浏览器造成严重的压力,尤其是在处理大量数据时。想要保持简单和高效,请使用Array.concat()Array.push.apply(arr1, arr2) 函数。

处理较小的数组,建议使用Array.concat()

代码列子:

let list1 = ['a', 'b'];
let list2 = ['c', 'd'];
console.log(list1.concat(list2)); // ['a', 'b', 'c', 'd']

在较大数组时,它会在创建新数组时消耗大量内存。要解决性能下降问题,建议使用Array.push.apply(arr1, arr2)

代码列子:

let list1 = ['a', 'b', 'c', 'd', 'e'];
let list2 = ['f', 'g', 'h', 'i', 'j'];
console.log(list1.push.apply(list1, list2)); // 10
console.log(list1); // returns ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

5、数组过滤使用 filter()

filter()在筛选数组非常有用。在这种情况下,你可以根据数组的特征来排除数据。

代码列子:

let ages = [32, 33, 16, 40];
ages = ages.filter(age => age >= 18);
console.log(ages); // 32,33,40

6、快速去重 ...new Set(arr)

假设你有一个重复值的数组,你需要去重。可以使用扩展语法和对象类型的组合来实现。此方法适用于StringNumber

代码列子:

const cars = ['Opel', 'Bugatti', 'Opel', 'Ferrari', 'Ferrari', 'Opel'];
const unrepeated_cars = [...new Set(cars)];
console.log(unrepeated_cars); // ['Opel', 'Bugatti', 'Ferrari']

7、正则结合replace()实现替换功能

大家应该熟悉该功能。但是,它默认执行替换一次。假设你需要批量替换,可以配合正则使用。

const grammar = 'synonym synonym';
console.log(grammar.replace('synonym', 'anto')); // anto synonym
console.log(grammar.replace(/syno/, 'anto')); //  'antonym synonym'
console.log(grammar.replace(/syno/g, 'anto')); //'antonym antonym'

8、使用模版字符进行字符串的拼接

模版字符使用(``)字符结合(${}),其中可以包含变量、表达式等。

代码列子:

const name = '三哥';
const age = '26';
// const str = '他叫' + name + age;
const str = `他叫${name}${age}`;

9、如何检查对象是否有值

检查对象是否为空的快速技巧是使用Object.keys()

代码列子:

Object.keys(objectName).length // 如果返回0,则objectName为空,否则显示值的数目

10、灵活使用 ???运算符

可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。操作符的功能类似于( . )链式操作符,不同之处在于,在引用为空null或者 undefined的情况下不会引起错误,该表达式返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined.

在我们日常开发中, 常遇到这样的报错 Cannot read properties of undefined (reading 'XXX')

代码列子:

 const obj = {};
 console.log(obj.user.name); // 报错  Cannot read properties of undefined (reading 'name')
 console.log(obj.user?.name); // undefined

空值合并运算符( ?? )是一个逻辑操作符,如果左侧的表达式为 null或者 undefined 时,返回其右侧表达式,否则返回左侧表达式。

代码列子:

null ?? 1; //  1
undefined ?? 2; // 2
true ?? 1; // true

 

前端面试题库 (面试必备)            推荐:★★★★★

地址:前端面试题库

相关文章
|
5天前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
|
16天前
|
存储 JavaScript 前端开发
前端技术分享:使用Vue.js与Vuex管理状态
【10月更文挑战第1天】前端技术分享:使用Vue.js与Vuex管理状态
38 6
|
16天前
|
JavaScript 前端开发 开发者
前端技术分享:Vue.js 中的自定义指令
【10月更文挑战第1天】前端技术分享:Vue.js 中的自定义指令
46 5
|
5天前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
17 0
|
6天前
|
JavaScript 前端开发 API
Vue.js:现代前端开发的强大框架
【10月更文挑战第11天】Vue.js:现代前端开发的强大框架
58 41
|
1天前
|
前端开发 JavaScript 安全
JavaScript前端开发技术
JavaScript(简称JS)是一种广泛使用的脚本语言,特别在前端开发领域,它几乎成为了网页开发的标配。从简单的表单验证到复杂的单页应用(SPA),JavaScript都扮演着不可或缺的角色。
10 3
|
8天前
|
JavaScript 前端开发 API
Vue.js:打造高效前端应用的最佳选择
【10月更文挑战第9天】Vue.js:打造高效前端应用的最佳选择
11 2
|
8天前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
16天前
|
JavaScript 前端开发 API
前端技术分享:Vue.js 动态路由与守卫
【10月更文挑战第1天】前端技术分享:Vue.js 动态路由与守卫
|
5天前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
38 0