首页 > 编程语言 >【JavaScript系列九】—讲述JS学习历程的知识分享!

【JavaScript系列九】—讲述JS学习历程的知识分享!

时间:2024-09-09 09:21:24浏览次数:5  
标签:arr console log JavaScript JS let 数组 讲述 const

前言

本篇主要是讲述ES6的新增语法和相关运用

一、ES6

ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。

泛指2015年6月之后发布的版本

为什么使用ES6

  • 语言更加完善

  • 功能更加强大

  • 变量提升特性增加了程序运行时的不确定性

  • 语法过于松散,实现相同的功能不同的人可能会写出不同的代码

二、let和const

let

  • 具有块级作用域(一对大括号产生的作用域),var 不具备此特性

  • 防止循环变量变成全局变量

  • let 声明的变量没有变量提升,必须先声明再使用

  • 暂时性死区,就是不能在初始化之前,使用变量 num

var num = 123;
if(true) {
    // num 变量和块级整体进行了绑定
    console.log(num);
    let num = 20;
}

const

常量就是值(内存地址)不能变化的量

  • 具有块级作用域

  • 必须给初始值

  • 常量赋值后,基本数据类型的值不能改

  • 常量赋值后,复杂数据类型的地址不能改

三、解构赋值

数组解构赋值

从数组中提取值,按照对应位置,对变量进行赋值

对象解构赋值

var {name, age} = {name: 'xx', age: 18};


使用别名
var {name: myName, age: myAge} = {name: 'xx', age: 18};
console.log(myName);

四、箭头函数

基本写法

const fn = () => {};

返回值

// 函数体中只有一句代码,则代码的执行结果就是返回值,可以省略大括号
const fn = (num1, num2) => num1 + num2;
console.log(fn(3, 2));

 箭头函数中的this问题

箭头函数不绑定this,箭头函数中的this,指向的是函数定义位置的上下文this


const obj = {
    name: 'xxx'
};
function fn() {
    console.log(this);
    return () => {
        console.log(this);
    }
}
const resFn = fn.call(obj);
resFn();

五、剩余参数

可以将一个不定数量的参数表示为一个数组

注意箭头函数当中是使用不了arguments的



function sum(first, ...args) {
    console.log(first);
    console.log(args);
}
sum(10, 20, 30);

六、扩展运算符

可以将数组或者对象转为用逗号分割的参数序列

  • 应用于合并数组
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6]; 
console.log([...arr1, ...arr2]);




let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6]; 
arr1.push(...arr2);
console.log(arr1);
  • 将类数组或可遍历对象转化为真数组
var aDivs = document.getElementsByTagName("div");
aDivs = [...aDivs];

七、数组扩展

Array.from

将类数组和可遍历对象转换为真数组

let arrLike = {
    "0": "a",
    "1": "b",
    "2": "c",
    length: 3
};
let arr = Array.from(arrLike);
console.log(arr);



// 第二个参数对每个元素进行遍历,将处理后的值返回到数组
let arr = Array.from(arrLike, item => item+"*");
console.log(arr);

Array.prototype.find

// 找出第一个符合条件的成员,没有就返回undefined
let arr = [{
    id: 1,
    name: 'a'
}, {
    id: 2,
    name: 'b'
}];
let target = arr.find((item, index) => item.id === 2);
console.log(target);

Array.prototype.findIndex

// 找出第一个符合条件成员的位置,没有就返回 -1
let arr = [1, 5, 10, 16];
let index = arr.findIndex((val, index) => val > 9);
console.log(index);// 2

Array.prototype.includes

数组中是否包含某个值,返回布尔值

八、模板字符串

  • 模板字符串中可以换行,阅读性好

  • 在模板字符串中可以调用函数

const sayHello = function() {
    return '哈哈哈';
};
let greet = `${sayHello()} ~~~`;
console.log(greet);

九、Set数据结构

ES6 提供的新的数据结构,类似于数组,但是成员的值都是唯一的,没有重复的值

Set 本身是一个构造函数,用来生成 Set 数据结构

接收一个数组作为参数

去重

const s = new Set([1, 1, 2, 2, 3]);
console.log([...s]); // [1,2,3]

实例方法

const s = new Set();
// 添加
s.add('a').add('b').add('c');
// 删除
s.delete('b');
// 是否有 a 这个值
console.log(s.has('a')); // true
console.log(s.has('b')); // false
// 清除所有值
s.clear();

遍历Set

const s = new Set();
// 添加
s.add('a').add('b').add('c');
s.forEach(val => console.log(val));

十、数组新增方法

forEach

var arr = ['a', 'b', 'c'];

arr.forEach(function(currentValue, index, arr) {
    console.log(currentValue); // a、b、c
});

filter

var words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

// 返回一个新数组
const result = words.filter(word => word.length > 6);

console.log(result)

map

var array1 = [1, 4, 9, 16];

// pass a function to map
const map1 = array1.map(x => x * 2);

console.log(map1);

find

// 返回数组中符合条件的第一个元素
let array1 = [5, 12, 8, 130, 44];
let found = array1.find(function (element) {
    return element > 10;
});
console.log(found); // 12

有不明白的或者有其他问题的可以评论区留言噢

私信回复JS思维导图可获取完整知识导图~

今天的知识分享就到这里啦~希望大家在这能学到知识一起分享一起进步,成为更好的自己!

标签:arr,console,log,JavaScript,JS,let,数组,讲述,const
From: https://blog.csdn.net/m0_60623820/article/details/141958404

相关文章

  • java导入json数据至doris
    表结构字段名称与json key名称一致:packagecom.ruoyi.doris;importcn.hutool.core.io.FileUtil;importcn.hutool.http.HttpRequest;importcn.hutool.http.HttpResponse;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;importlomb......
  • 基于Node.js+vue基于的营养配餐评价系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着人们生活水平的提高和健康意识的增强,科学合理的膳食搭配成为了现代人追求健康生活方式的重要组成部分。然而,在日常饮食中,许多人因缺乏专业的营养知识和......
  • 基于Node.js+vue应急物资管理平台(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在自然灾害、公共卫生事件等突发事件频发的背景下,应急物资的高效管理与快速调配成为保障人民生命财产安全、维护社会稳定的关键环节。然而,传统的应急物资管......
  • 基于Node.js+vue基于的外卖订餐系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和智能手机的普及,外卖订餐服务已成为现代生活中不可或缺的一部分。人们越来越倾向于通过便捷的手机应用解决日常餐饮需求,这不仅节......
  • 基于Node.js+vue基于springboot的茶文化交流平台的设计与实现(开题+程序+论文) 计算机
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在全球化日益加深的今天,文化的传承与交流显得尤为重要。茶文化作为中国传统文化的瑰宝,不仅承载着深厚的历史底蕴,还蕴含着丰富的哲学思想和审美追求。然而,随......
  • JavaScript高级——数据、变量、内存
    1、数据存储在内存中代表特定信息的东西,本质上是010101…….数据的特点:可传递、可运算一切皆数据内存中所有操作的目标:数据操作包括:算术运算、逻辑运算、赋值、运行函数(调用函数传参)。2、内存内存条通电后产生的可存储数据的空间(临时的)内存产生和死亡:内存条(电路板)——> ......
  • 基于Node.js+vue应急平台(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在全球化与信息化的时代背景下,自然灾害、公共卫生事件等突发事件频发,对社会稳定、经济发展及人民生命财产安全构成了严重威胁。传统应急响应机制往往面临信......
  • 基于Node.js+vue基于机器学习的高考志愿推荐(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着教育改革的深入和高等教育普及率的提升,高考作为学生生涯中的关键节点,其志愿填报环节日益受到重视。然而,面对海量且复杂的院校、专业信息及不断变化的高......
  • 基于Node.js+vue中医文献管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景中医,作为中华民族宝贵的文化遗产,其理论与实践体系博大精深,承载着数千年的医学智慧。随着中医研究的不断深入和全球化传播,中医文献的数量急剧增加,涵盖了古籍......
  • 基于Node.js+vue综合考务管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着教育事业的蓬勃发展,学校规模不断扩大,考务管理工作面临着前所未有的挑战。传统的手工或简单的电子化管理方式已难以满足当前复杂多变的考务需求,如院系众......