【前端学习路线】

前端学习路线

  • 1. 大纲: 前端学习路线
  • 2. ES6 语法
    • 1. let 和 const
    • 2. 箭头函数
    • 3. 解构
      • 3.1 数组解构
      • 3.2 对象解构
    • 4 剩余参数
      • 4.1 和解构联用
      • 4.2 合并数组
    • 5. 可选链
    • 6. Set
    • 7.数组操作
    • 8.字符串扩展方法
      • 8.1 startsWith() 和 endsWith()
      • 8.2 模板字符串

1. 大纲: 前端学习路线

学习前端开发工具、编译、打包和配置格式化等内容,可以按照以下步骤进行学习:

  1. 了解基础知识

    • 开始前端开发之前,需要对 HTML、CSS 和 JavaScript 有一定的了解。可以通过在线教程、视频课程或书籍来学习这些基础知识。
  2. 学习版本管理工具

    • 掌握版本管理工具如 Git 的基本使用,了解如何进行代码提交、分支管理等操作。
  3. 学习基本的开发工具

    • 了解并学习使用一些基本的开发工具,比如编辑器(如 Visual Studio Code、Sublime Text 等)、终端工具等。
  4. 掌握包管理工具

    • 学习使用包管理工具,比如 npm(Node Package Manager)或者 yarn。了解如何安装、管理和使用包,以及如何初始化项目。
  5. 学习构建工具

    • 掌握前端构建工具如 Webpack、Parcel、Rollup 或 Vite 等的基本使用,了解如何配置项目、处理模块、打包资源等。
  6. 了解代码格式化工具

    • 学习使用代码格式化工具如 Prettier 或 ESLint,了解如何配置和使用这些工具来提高代码的质量和一致性。
  7. 深入学习框架和库

    • 了解并学习一些流行的前端框架和库,比如 React、Vue.js、Angular 等,掌握它们的基本用法和工具链。
  8. 实践项目

    • 通过实际项目来应用所学知识,比如创建一个简单的网页或者应用,然后使用所学的工具进行构建、打包和格式化等操作。
  9. 持续学习

    • 前端开发是一个不断更新和发展的领域,因此需要持续学习新的工具、技术和最佳实践。

2. ES6 语法

1. let 和 const

let 是 ES6 中新增加的用于声明变量的关键字,它具有如下特点
不存在变量提升,即不能先使用再声明

num = 20
let num = 30;
console.log(num);
// 报错:uncaught ReferenceError: Cannot access 'num' before initialization 
//		at<!DOCTYPE html>.html:11:13

只在块级作用域有效

{let num = 30;
}console.log(num);

const
只在块级作用域有效,赋值后不能修改

var、let、const的区别

  1. var 声明的变量作用域在所处的函数内,let 和 const 声明的变量作用域在所处的大括号内。
  2. var 声明的变量存在变量提升现象,let 和 const 声明的变量不存在变量提升现象。
  3. const 声明变量时必须要赋值,赋值之后不能再重新赋值

2. 箭头函数

  • () 代表函数
  • {} 代表函数体
  • const ft = () => {} 代表把一个函数赋值给ft
  • ft() 调用该函数
// 箭头函数:获取年龄最大值
const ft = (userArray, sex) => {let ageArray = userArray.filter(user => user.sex == sex).map(item => item.age);return Math.max(...ageArray);
}let userArray = [{ name: '张三', sex: '男', age: 18 },
{ name: '李四', sex: '女', age: 19 },
{ name: '王五', sex: '男', age: 21 }]
// 调用函数
console.log(ft(userArray, '男'));// 输出结果: 21

3. 解构

解构就是把数据结构进行分解,然后为定义的变量赋值

3.1 数组解构

const num =[0,1,2,3];
const a= num[0];
const b= num[1]
console.log(a+b);// 解构
let [a, b] = [0, 1, 2, 3];
console.log(a + b)

3.2 对象解构

// 获取对象中数据的传统方式:
let user = {name:"张三",age:19};
let name = user.name;
let age = user.age;
console.log("姓名:"+name+",年龄:"+age);
// 解构:
let { name, age } = { name: "张三", age: 19 };
console.log("姓名:" + name + ",年龄:" + age);

4 剩余参数

剩余参数允许我们将一个未知数量的参数表示为一个数组。


const print = (num, ...args) => {console.log(num);console.log(args);
}
print(0, 1, 2)

4.1 和解构联用

let users = ['张三', '李四', '王五'];
let [u1, ...u2] = users;
console.log(u1);
console.log(u2);
// 输出

4.2 合并数组

let u1 = ['张三', '李四', '王五'];
let u2 = ['张无忌', '赵敏', '周芷若'];
let u3 = [...u1,...u2];
console.log(u3);

5. 可选链

可选链 ?. 是一种 访问嵌套对象属性的防错误方法 。即使中间的属性不存在,也不会出现错误。 如果可选链 ?. 前面部分是 undefined 或者 null,它会停止运算并返回 undefined。

//我们要想获取一个嵌套对象的属性,一般会这样写:
let res = {data: {data: {success: true,id: "20220425"}}}if (res && res.data && res.data.data.success) {let id = res.data.data.id;console.log(id);}// 使用可选链
let res = {data: {data: {success: true,id: "20220425"}}}// important
if (res?.data?.data?.success) {let id = res?.data?.data?.id;console.log(id);
}

6. Set

Set 是 ES6 提供的一种数据结构,它和数组很像,但是它里面的数据是不可重复的。

// 初始化const set1 = new Set([1, 2, 3, 4, 5, 5]);
const set2 = new Set(['苹果','橘子','橘子']);
console.log(set1);
console.log(set2);// 添加数据const set1 = new Set([1, 2, 3, 4, 5,5]);
set1.add(7);//删除数据
const set1 = new Set([1, 2, 3, 4, 5,5]);
set1.delete(3);// 包含数据
const set1 = new Set([1, 2, 3, 4, 5,5]);
const res = set1.has(1);
console.log(res);// 清除所有数据
let u1 = ['张三', '李四', '王五'];
let u2 = ['张无忌', '赵敏', '周芷若'];
let u3 = [...u1,...u2];
console.log(u3);

7.数组操作

// 合并数组
let u1 = ['张三', '李四', '王五'];
let u2 = ['张无忌', '赵敏', '周芷若'];
let u3 = [...u1,...u2];
console.log(u3);// includes 用来判断该数组是否包含某个值,返回值是布尔值
let users = ['张三','李四'];
let res =users.includes('张三');
console.log(res);// find 用来找到第一个符合条件的成员,没有找到返回 undefined
let users = [{ name: '张三', age: 18 }, { name: '李四', age: 20 }];
let user = users.find((item, index) =>item.age > 18
)
console.log(user);
// 输出: {name:'李四',age:20}// findIndex 用来找到第一个符合条件的成员的索引,没有的话返回 -1
let users = [{ name: '张三', age: 18 }, { name: '李四', age: 20 }];
let index = users.findIndex((item, index) =>item.age > 18
)
console.log(index)//filter 用来返回一个满足条件的新数组,不满足条件返回空数组
let users = [{ name: '张三', age: 18 }, { name: '李四', age: 20 }];
let array = users.filter((item, index) =>item.age > 21
)
console.log(array);//map 用来返回一个对成员进行加工之后的新数组
let users = [{ name: '张三', age: 18 }, { name: '李四', age: 20 }];
let array = users.map((item, index) => {item.name += "666";item.age += 10;return item;
})
console.log(array);

8.字符串扩展方法

8.1 startsWith() 和 endsWith()

let message = "helloworld";
let res = message.startsWith("hello");
console.log(res);let message = "helloworld";
let res = message.endsWith("ww");
console.log(res);

8.2 模板字符串

// 定义: 反引号`
let country = `中国`;// 解析变量
let country = `中国`;
let message = `我爱你${country}`;
console.log(message);// 调用函数
const print = message=>message+",2022-04-25";
let message = `${print('我爱你中国')}`;
console.log(message);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/660246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Android 字节码插桩】Gradle插件基础 Transform API的使用

前言 啪~我给大家开个会&#xff08;手机扔桌子上&#xff09; 什么叫做 客户无感的数据脱敏&#xff01;&#xff1f; 师爷给翻译翻译什么叫做客户无感的数据脱敏&#xff1f; 什么特么的叫做客户无感数据脱敏&#xff1f; 举个栗子~ 客户端Sdk新升级了一个版本&#xff0c;增…

Jmeter,如何从数组参数中取值

有个post请求&#xff0c;参数“equipment_ids”&#xff0c;是个数组&#xff0c;需求每次执行的时候&#xff0c;按顺序取equipment_ids中不同的值 要实现在 JMeter 中每次执行请求时按顺序取不同的 equipment_ids 中的值&#xff0c;你可以使用 Counter 元件来生成索引&…

Qt读写Execl:QXlsx库

Qt三方库开发技术&#xff1a;QXlsx介绍、编译和使用 我自己记录的实例代码&#xff1a;https://download.csdn.net/download/cao_jie_xin/88795216 目录 一、概述二、下载三、编译四、加载QXlsx静态库五、介绍一些常用的功能1、一些头文件和命名空间2、创建一个excel文件3、…

vue-cli脚手架的安装

vue-cli 1 什么是vue-cli Vue 提供了一个官方的 CLI&#xff0c;为单页面应用 (SPA) 快速搭建繁杂项目的脚手架。它为现代前端工作流提供了 batteries-included 的构建设置。只需要几分钟的时间就可以运行起来并带有热重载、保存时 lint 校验&#xff0c;以及生产环境可用的构…

2024年1月个人工作生活总结

本文为 2024年1月工作生活总结。 研发编码 docker-compose外部网络配置 高版本的docker-compose有些语法变化。 使用如下方式声明外部网络&#xff1a; version: 3.8services:ll-busybox: ...networks:my-net:ipv4_address: 172.100.1.1 networks:my-net:external:name: &q…

在linux(centos)上运行C语言文件

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1.下载gcc2.创建C语言…

软件价值2-贪吃蛇游戏

贪吃蛇游戏虽然很多&#xff0c;不过它可以作为软件创作的开端&#xff0c;用python来实现&#xff0c;然后dist成windows系统可执行文件。 import pygame import sys import random# 初始化 pygame.init()# 游戏设置 width, height 640, 480 cell_size 20 snake_speed 15# …

SpringBoot 整合多数据源的事务问题

代码 先贴代码&#xff1a;核心就是&#xff1a;Spring给我们提供的一个类 AbstractRoutingDataSource&#xff0c;然后我们再写一个切面来切换数据源&#xff0c;肯定要有一个地方存储key还要保证上下文都可用&#xff0c;所以我们使用 ThreadLocal 来存储数据源的key pom.xml…

【笔记】计算文件夹的大小

目标&#xff1a;遍历文件夹&#xff0c;计算文件夹下包含文件和文件夹的大小。将这些结果存入python自带的数据库。 用大模型帮我设计并实现。 Step1 创建一个测试用的目录结构 创建目录结构如下所示&#xff1a; TestDirectory/ │ ├── EmptyFolder/ │ ├── SmallF…

结合创新!11种多尺度特征融合方法,附论文和代码

随着深度学习和计算机视觉技术的快速发展&#xff0c;多尺度特征融合已经成为一个备受关注的、不断探索的研究方向&#xff0c;它通过捕捉不同尺度和层次上的特征信息&#xff0c;提高对图像和视频内容的理解能力&#xff0c;为图像处理、计算机视觉和深度学习等领域的应用提供…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之DatePicker组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之DatePicker组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、DatePicker组件 日期选择器组件&#xff0c;用于根据指定日期范围创建日期滑…

Delphi TStringList常用的方法和属性

Delphi TStringList 是一个常用的字符串列表类&#xff0c;用于存储和操作字符串列表。以下是一些常用的方法和属性&#xff1a; 方法&#xff1a; Add&#xff1a;向列表末尾添加一个字符串。Insert&#xff1a;在指定位置插入一个字符串。Delete&#xff1a;删除指定位置的…

字符串操作函数1

1.strcpy使用 使用这个函数我们可以进行字符串拷贝。它有两个参数&#xff0c;第一个参数是指向目标空间&#xff0c;第二个参数是指向需要拷贝的字符串。返回值为拷贝完成后指向的字符串首地址。头文件为<string.h> 演示如下&#xff1a; 注意&#xff1a; • 源字符…

TensorFlow2实战-系列教程4:数据增强

&#x1f9e1;&#x1f49b;&#x1f49a;TensorFlow2实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 猫狗识别1 数据增强 猫狗识别2------数据增强 猫狗识别3------迁移学习 对于图像数据…

RS485自动收发电路震荡的问题

电路 设计初衷 电源5V 选择5V的原因&#xff0c;差分2.5V比1.5V可以提高传输能力 TTL输入 3.3V电平满足需求 TTL输出 4.5V了&#xff0c;MCU是3.3V平台 这样就分为两种情况 MCU接收端可以容忍5V输入 MCU接收端不可以容忍5V输入&#xff0c;就要进行电压转换&#xff0c;我这里使…

MacOS X 中 OpenGL 环境搭建 Makefile的方式

1&#xff0c;预备环境 安装 brew&#xff1a; /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 安装glfw&#xff1a; brew install glfw 安装glew&#xff1a; brew install glew 2.编译 下载源代码…

Linux内核--设备驱动(一)驱动的结构介绍

目录 一、引言 二、I/O架构 三、字符设备基本构成 ------>3.1、cdev ------>3.2、char_device_struct ------>3.3、cdev_map 四、打开字符设备 ------>4.1、加载 ------>4.2、创建文件设备 ------>4.3、打开字符设备 ------>4.4、写入字符设备…

本地搭建Plex私人影音网站并结合内网穿透实现公网远程访问

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【数据库】mysql触发器使用

题目&#xff1a; 创建职工表以及职工工资表职工表字段&#xff1a;工号&#xff0c;姓名&#xff0c;性别&#xff0c;年龄工资表字段&#xff1a;编号自增&#xff0c;职工工号&#xff0c;基础工资10000通过触发器实现&#xff1a;对职工进行添加时 工资表中也要体现当前职…

Google Play 内购实现

接上一次苹果内购记录-CSDN博客&#xff0c;我又接了一把 Google Play 内购。 Google Play 内购实现 - 掘金 (juejin.cn) 吐槽一下CSDN的编辑器&#xff0c;对多图Markdown来说体验可太差了&#xff0c;去掘金看吧 &#xff08;其实就是懒&#xff0c;不想手动上传所有图&am…