20个简洁的 JS 代码片段,关于数据库索引的面试题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

困惑吗?让我解释一下它是如何工作的:

1)、new Set(numbers)从数字列表中创建一个集合。创建集合会自动删除所有重复值。

2)、展开运算符…将任何可迭代对象转换为数组。这意味着将集合转换回数组。[…new Set(numbers)]

3、 较短的 If-Else 的空合并

=======================

这也是 if-else 的简写。

你可以使用看涨合并,而不是使用 if-else 构造来检查值是否为空。该nullish合并操作 ??,如果没有定义左侧返回右侧。如果是,则返回左侧:

let maybeSomething;

// LONG FORM

if(maybeSomething){

console.log(maybeSomething)

} else {

console.log(“Nothing found”)

}

//SHORTHAND

console.log(maybeSomething ?? “Nothing found”)

4、防止崩溃的可选链

==============

如果访问未定义的属性,则会产生错误。这就是可选链的用武之地。

在未定义属性时使用可选链运算符,undefined将返回而不是错误。这可以防止你的代码崩溃。

例如:

const student = {

name: “Matt”,

age: 27,

address: {

state: “New York”

},

};

// LONG FORM

console.log(student && student.address && student.address.ZIPCode); // Doesn’t exist - Returns undefined

// SHORTHAND

console.log(student?.address?.ZIPCode); // Doesn’t exist - Returns undefined

5、在没有第三个变量的情况下交换两个变量

========================

在 JavaScript 中,你可以使用解构从数组中拆分值。这可以应用于交换两个变量而无需第三个:

let x = 1;

let y = 2;

// LONGER FORM

let temp = x;

x = y;

y = temp;

// SHORTHAND

[x, y] = [y, x];

6、将任何值转换为布尔值

================

在 JavaScript 中,你可以使用 !! 在 JS 中将任何内容转换为布尔值。

例如,这里有一些例子:

!!true // true

!!2 // true

!![] // true

!!“Test” // true

!!false // false

!!0 // false

!!“” // false

7、扩展运算符

===========

使用扩展运算符组合两个数组…:

const nums1 = [1, 2, 3];

const nums2 = [4, 5, 6];

// LONG FORM

let newArray = nums1.concat(nums2);

// SHORTHAND

newArray = […nums1, …nums2];

也可以使用此语法代替将值推送到数组:

let numbers = [1, 2, 3];

// LONGER FORM

numbers.push(4);

numbers.push(5);

// SHORTHAND

numbers = […numbers, 4, 5];

8、传播解构

==========

使用扩展运算符将剩余元素分配给变量:

const student = {

name: “Matt”,

age: 23,

city: “Helsinki”,

state: “Finland”,

};

// LONGER FORM

const name = student.name;

const age = student.age;

const address = { city: student.city, state: student.state };

// SHORTHAND

const { name, age, …address } = student;

9、 使用 && 进行短路评估

===================

不必用if语句检查某事是否为真,你可以使用&&运算符:

var isReady = true;

function doSomething(){

console.log(“Yay!”);

}

// LONGER FORM

if(isReady){

doSomething();

}

// SHORTHAND

isReady && doSomething();

10、类固醇的字符串

==============

通过将字符串包装在反引号内并${}用于嵌入值,从而在字符串之间插入变量。

例如:

const age = 41;

const sentence = I'm ${age} years old;

// result: I’m 41 years old

11、 从数组中查找特定元素

==================

使用find()方法查找匹配特定条件的元素:

const fruits = [

{ type: “Banana”, color: “Yellow” },

{ type: “Apple”, color: “Green” }

];

// LONGER FORM

let yellowFruit;

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

if (fruits[i].color === “Yellow”) {

yellowFruit = fruits[i];

}

}

// SHORTHAND

yellowFruit = fruits.find((fruit) => fruit.color === “Yellow”);

12、对象属性赋值

=============

你是否希望对象键与值具有相同的名称?你可以省略对象文字来执行此操作:

const name = “Luis”, city = “Paris”, age = 43, favoriteFood = “Spaghetti”;

// LONGER FORM

const person = {

name: name,

city: city,

age: age,

favoriteFood: favoriteFood

};

// SHORTHAND

const person = { name, city, age, favoriteFood };

13、压缩 For 循环

================

使用内置forEach()方法通过一行代码循环遍历数组:

const numbers = [1, 2, 3, 4, 5];

// LONGER FORM

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

console.log(numbers[i]);

}

// SHORTHAND

numbers.forEach(number => console.log(number));

14、 默认功能参数

==============

你可以为函数参数提供默认值:

// LONG FORM

function pickUp(fruit) {

if(fruit === undefined){

console.log(“I picked up a Banana”);

} else {

console.log(I picked up a ${fruit});

}

}

// SHORTHAND

function pickUp(fruit = “Banana”) {

console.log(I picked up a ${fruit})

}

pickUp(“Mango”); // -> I picked up a Mango

pickUp(); // -> I picked up a Banana

15、将对象的值收集到数组中

==================

框架相关

原生JS虽能实现绝大部分功能,但要么就是过于繁琐,要么就是存在缺陷,故绝大多数开发者都会首选框架开发方案。现阶段较热门是React、Vue两大框架,两者工作原理上存在共通点,也存在一些不同点,对于校招来说,不需要两个框架都学得特别熟,一般面试官会针对你简历中写的框架进行提问。

在框架方面,生命周期、钩子函数、虚拟DOM这些基本知识是必须要掌握的,在学习的过程可以结合框架的官方文档

Vue框架

知识要点:
1. vue-cli工程
2. vue核心知识点
3. vue-router
4. vuex
5. http请求
6. UI样式
7. 常用功能
8. MVVM设计模式

React框架

知识要点:
1. 基本知识
2. React 组件
3. React Redux
4. React 路由

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
生命周期、钩子函数、虚拟DOM这些基本知识是必须要掌握的,在学习的过程可以结合框架的官方文档

Vue框架

知识要点:
1. vue-cli工程
2. vue核心知识点
3. vue-router
4. vuex
5. http请求
6. UI样式
7. 常用功能
8. MVVM设计模式

[外链图片转存中…(img-M5BQcUKA-1713275399982)]

React框架

知识要点:
1. 基本知识
2. React 组件
3. React Redux
4. React 路由

[外链图片转存中…(img-TehfgoFN-1713275399982)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-dvMiPj3H-1713275399983)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值