我的编程空间,编程开发者的网络收藏夹
学习永远不晚

编写代码所掌握的概念有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

编写代码所掌握的概念有哪些

本篇内容主要讲解“编写代码所掌握的概念有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“编写代码所掌握的概念有哪些”吧!

1.解构

从对象中提取属性有几种方法,解构就是其中之一。它有助于清晰地提取对象的属性、从数组中赋值或将对象的属性赋给变量。之所以优于其他方法,是因为它允许在单个语句中提取多个属性,可以从嵌套对象中访问属性,还可以在属性不存在时为其赋默认值。

比如以下对象。

const profile = {    name: "Harry",    age: 15,    country: "UK" };

运用解构,可以在单个语句中提取此对象的一个或多个属性。

const { name, age } = profile; console.log(name, age); // Harry 15

给属性赋值是解构的另一种用法,不存在的属性将返回指定默认值。

const { name, age, school = "Hogwarts" } =profile;console.log(school); // Hogwarts

此外,数组解构也很流行,可以为变量分配默认值,在变量之间交换值等。在引入ES6之前,还不存在可以一次提取所有数据的机制。因此,解构是一个工具概念,可以让代码更纯净。

2.Spread语法

将spread运算符用于可迭代对象(如数组和字符串),它有助于将可迭代对象扩展为单个元素。扩展运算符的语法为三个点( ... )。

例如,假设一个函数需要三个参数,而我们有一个包含三个元素的数组。通过使用spread语法,可以将数组传递给这个函数,它将迭代数组,并将元素分配给函数的相关参数。

function sum (a, b, c) {    return a + b + c; }const numbers = [1, 2, 3];console.log(sum(...numbers)); // 6

在ES6中引入spread运算符之前,使用数组将参数传递给函数要复杂得多。

spread语法的另一种用法是连接数组。假设有两个数组,如下所示:

const vegetables = ["carrot", "pumpkin"]; const fruits = ["apple", "pear"];

在引入spread语法前,必须使用array.concat方法来组合这些数组。然而,使用spread语法,数组组合变得非常容易。

const newArray = [ ...vegetables, ...fruits ];console.log(newArray); // ["carrot", "pumpkin", "apple","pear"]

此外,还可以使用spread运算符创建具有完全相同内容但引用不同的对象副本。

3. Rest语法

rest语法使用规范与spread语法相同。区别在于,spread会复制所有内容,而如果想要检索所有剩余元素时,就可以使用rest语法。

const numbers = [1, 3, 2, 6, 8];const [1, 3, ...rest] =numbers;console.log(rest); // [2, 6, 8]

4.数组方法

JavaScript数组方法为数组中的数据转换提供了一种干净简洁的解决方案。在众多可用的数组方法中,我将介绍4种最重要的方法,即map, filter,  reduce 和 some。

  • Map

此方法返回一个数组,其中数组中的每个元素都根据指定函数进行转换。比如,如果要将数组的每个元素乘以2,就可以使用map方法,在单个语句中完成这项工作,而不需要任何复杂循环。此外,map方法不会改变原始数据。

const array = [1, 2, 3]; const mapped = array.map(element => element * 2);console.log(mapped); // [2, 4, 6] · Filter

此方法返回一个元素数组,其中函数返回true。比如,如果需要从数组中检索偶数,则可以按如下方式筛选数组。

const numbers = [1, 2, 3, 4, 5, 6]; const evenNumbers = numbers.filter(element => element % 2 ===0);console.log(evenNumbers); // [2, 4, 6] · Reduce

此方法根据函数指定的值进行累积。

const arr = [1, 2, 3, 4, 5, 6]; const reduced = arr.reduce((total, current) => total +current);console.log(reduced); // 21

这三种方法是数组中功能强大的数据转换方法,可以得到非常清晰易读的代码。使用这些方法可以编写更简单、更短的代码,而不必担心循环或分支。这些数组方法对于JavaScript开发人员来说非常重要,它可以减少代码、减少人工操作并提高可读性。

  • Some

如果数组中的某些元素通过了指定函数的测试,则此方法返回true。如果没有元素与该函数相对应,则此方法返回false:

const array = [1, 2, 3, 4, 5];const isEven = (element) => element % 2=== 0;console.log(array.some(isEven)); // true

与在数组中迭代查找结果的传统方法相反,该方法在查找符合特定条件数组中的元素时非常有用。

5. 值与引用变量分配

如何给变量赋值是每个JavaScript开发人员都应该知道的一个最重要的概念。如果不知道这一点,就可能会给变量赋值并无意中更改掉了,这将导致代码中出现意外错误。

JavaScript总是按变量的值分配变量。但是主要有两种赋值类型:如果赋值是JavaScript基元类型(boolean、null、undefined、string、number、bigint和symbol),则实际值被赋给变量。但如果分配的值是Array,  Function,或Object,则分配的是内存中对象的引用,而不是实际值。

一起来看下面几个例子,加深理解。考虑变量name1和name2:

let name1 = "John"; let name2 = name1;

变量name2被分配为变量name1,因此,这些变量属于基元类型,所以实际值(“John”)被分配给这两个变量。因此,这两个变量可以看作是两个值相同的独立变量。由于这个原因,重新分配第二个变量不会影响第一个变量。这称为按值分配变量。

name2 = "Peter";console.log(name1, name2); // "John", "Peter"

另一种方法是通过引用分配变量。如果变量类型是array, object,或  function,则在内存中为变量分配一个引用,而不是实际值。来看看以下对象赋值。

let obj1 = { name: "Lucy" } let obj2 = obj1;

通过该赋值,变量obj2获得与obj1相同的内存引用。因此,改变obj2  也会影响obj1,因为它们不再被视为单独的变量。这两个变量在内存中有相同的引用。

obj2.name = "Mary";console.log(obj1); // { name: "Mary" }console.log(obj2); // { name: "Mary" }

如果需要在内存中创建具有不同引用的相同对象的副本,可以使用spread运算符。以这种方式改变新创建的对象不会影响第一个对象,因为它们在内存中有不同的引用。

let object1 = { name: "Lucy" }; let object3 = {...object1}object3.name = "Anne";console.log(object1); // { name: "Lucy" }console.log(object3); // { name: "Anne" }

到此,相信大家对“编写代码所掌握的概念有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

编写代码所掌握的概念有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PHP 负载均衡的深入探讨:掌握所有关键概念

负载均衡在 PHP 应用程序中的重要性
PHP 负载均衡的深入探讨:掌握所有关键概念
2024-03-01

Python Web编程的概念有哪些

本篇内容主要讲解“Python Web编程的概念有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python Web编程的概念有哪些”吧!1. 传统的Web Server应该具备的功能◆ 监
2023-06-17

Dreamweaver编写CSS必需掌握的技巧有哪些

小编给大家分享一下Dreamweaver编写CSS必需掌握的技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  一般地讲,样式表(style sheet)
2023-06-08

编写Java代码的建议有哪些

这篇文章主要介绍“编写Java代码的建议有哪些”,在日常操作中,相信很多人在编写Java代码的建议有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”编写Java代码的建议有哪些”的疑惑有所帮助!接下来,请跟
2023-06-17

HTML代码编写技巧有哪些

这篇文章主要为大家展示了“HTML代码编写技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML代码编写技巧有哪些”这篇文章吧。1. 一定要闭合HTML标签在以往的页面源代码里,经常看
2023-06-08

Java程序员所需要掌握的技能有哪些

这篇文章跟大家分析一下“Java程序员所需要掌握的技能有哪些”。内容详细易懂,对“Java程序员所需要掌握的技能有哪些”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“Java程序员
2023-06-02

编写Python代码常见的错误有哪些

这篇文章主要讲解了“编写Python代码常见的错误有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“编写Python代码常见的错误有哪些”吧!编写过于风格化的代码这是Python初学者的一
2023-06-15

可以编写javascript代码的软件有哪些

小编给大家分享一下可以编写javascript代码的软件有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!可以编写javascript代码的软件:Webstor
2023-06-15

函数重写的技巧:掌握子类专属代码的编写秘诀

函数重写使子类能够为父类函数提供自定义实现,而不会影响父类行为。子类只需声明一个具有相同名称和参数列表的新函数即可。例如,shape 类中的 area() 函数由 rectangle 类重写,为矩形提供定制的面积计算,同时仍然利用 shap
函数重写的技巧:掌握子类专属代码的编写秘诀
2024-05-03

编写更简洁React代码的技巧有哪些

这篇文章主要介绍“编写更简洁React代码的技巧有哪些”,在日常操作中,相信很多人在编写更简洁React代码的技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”编写更简洁React代码的技巧有哪些”的疑
2023-07-04

编写更简洁Python代码的技巧有哪些

这篇文章主要介绍“编写更简洁Python代码的技巧有哪些”,在日常操作中,相信很多人在编写更简洁Python代码的技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”编写更简洁Python代码的技巧有哪些
2023-06-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录