现代 JavaScript 初学者指南 - 第一部分
目录📦
您正在开始编写 JavaScript 代码。您如何知道您编写的 JS 是好是坏?
这是一份 JavaScript 入门迷你指南。
好的,让我们从这份充满技巧和窍门的精彩指南开始吧。获取一些
目录📦
变量
用来let定义可能改变的变量,用来定义const不应该改变的变量。现在你永远不应该使用var。
理解 let 和 const
用于let应用程序中某个时刻会发生改变的变量。
用于const永远不会改变的变量。
了解旧变量
你不应该再使用var。🙅♂️
旧的“var” ℹ️
发现神秘的 NaN
NaN 表示非数字。🤯
这是检查数字是否为 NaN 的最佳方法。
- 行(1):尝试将字符串解析55px为数字,但由于无法解析,因此返回NaN,所以result是NaN。
- 行(3):检查结果是否NaN为真。
- 行(4):检查是否'this is false baby!'为,因为不是 ,NaN所以为假。StringNaN
- 行(5):检查是否NaN为NaN,因为是,所以为真NaN。
如何对对象进行类型检查
这是检查对象类型的最佳方法。
函数默认参数
这是为您的函数定义默认参数的最佳方法。
- 行(1):通过使用name =它,您可以为函数参数定义一个默认参数。
- 行(5):覆盖默认参数。
- 行(6):使用默认参数。
剩余参数
无论如何定义,都可以使用任意数量的参数来调用函数。
还是不明白?是啊,我当时也是这样。🤷
基本上,这允许你发送任意数量的参数,它们最终会转换成一个数组。让我们看看实际效果⚡
- 第(1)行:通过使用...prices它,您可以传递任意数量的属性
- 行(7):使用作为参数调用该函数10, 50, 35, 42, 28。
但是假设你想要额外的参数......
- 第(1)行:通过使用...prices它允许传递任意数量的属性
- 行(6):使用作为参数调用该函数'Jhon', 'jhon@example.com', 10, 50, 35, 42, 28。
注意:额外的参数首先出现,其他参数随后出现(这些被称为“其余”😜)。
回调函数
好了,孩子们,这很重要。所以,你们最好注意听。
作为参数传递给另一个函数的函数,通常在事件发生时被调用。
简介:回调ℹ️
 
 如您所见,我们定义了一个以名称和函数作为参数的函数。
sayHello输出“Hello, Jhon”,然后调用sayGoodbye输出“Goodbye, Jhon”的函数。注意,sayGoodbye 需要 name 参数。
“this”关键字
好吧,这个问题有点棘手。这是一个相当大的话题,所以……我把你们重定向到我的一篇文章:JavaScript OOP 最大的陷阱😅
对象方法,“this” ℹ️
简写属性
- 行(7):使用变量name来分配一个property具有变量值的“名称”name。
- 行(8):使用变量beer为名为“gas”的气体分配变量key的值gas。
如果你不明白,喝点啤酒,过会儿再回来🍻
解构对象属性
希望你仍然清醒🥴
解构赋值是一种特殊的语法,它允许我们将数组或对象“解包”成一堆变量,有时这样更方便。解构也适用于具有大量参数、默认值等的复杂函数。
解构赋值ℹ️
- 行(10):定义一个对象,不用担心,它将被用作定义新变量的一种方式,这意味着该对象没有被分配到任何地方。
- 行(11)name:从中获取属性robot并定义一个变量name。
- 行(12)stealing:从中获取属性robot。skills并定义一个变量stealing。
- 行(13):获取其余属性robot并将它们分配给变量rest。
- 行(14):用于robot定义变量。
值存在性检查
这是检查给定对象上是否存在某个值的最佳方法。
- 行(6):检查计算机对象上是否存在一个属性,其值等于127.0.0.1
属性存在性检查
有几种方法可以检查对象上某个属性的存在。
- 行(5):当对象有太多键时,性能不佳。
- 行(6):即使对象有太多键,也能表现良好。
浅拷贝对象
浅拷贝将复制顶级属性,但嵌套对象在原始(源)和副本(目标)之间共享。
让我们来实验一下:
- 行(9):对对象进行浅拷贝robot。
- 行(19):将robotClone速度更新为800。
🐞 WOOT 🐞 我们修改了两个机器人speed,它们robotClone.skills共享robot.skills对对象的引用,因为没有进行单独的复制,而是复制了对对象的引用。对对象任何属性的更改都会影响使用该对象的所有引用。
注意:当您的对象具有嵌套属性时,不要进行浅复制(除非您确实想要这种行为),而是使用深复制。
深复制对象
这是进行深度复制的最佳方法。
 
 通过使用深拷贝与浅拷贝,你可以注意到对原始对象没有副作用🎉
解构数组
这与解构对象非常相似,但是因为数组没有键而是位置,所以我们需要访问我们想要返回的位置。
- 行(1):定义一个多维数组(您也可以使用常规数组,但我想向您展示这个东西的威力💪)。
- 第(3)行:我们定义一个变量firstRobotName,其值为robots[0],即['Bender', 'Steal']。然后定义一个变量secondRobotState(注意,我们跳过了机器人名称,而是取其状态'Cool')。最后定义一个变量rest来保存数组的其余部分。
继续学习🤓
最后的想法和下一步
我们已经尝试了一些现代概念,作为初学者您应该理解这些概念,其中一些技巧和窍门是当今完成我们过去使用 JavaScript 传统所做的事情的“最佳方式”。
写这篇文章的过程很愉快,希望你能从中受益匪浅。现在,请收藏它,以便快速查阅日常的 JS 技巧。
我很想听听你还想学习什么其他东西,这样我就可以把它们包含在现代 JavaScript 初学者指南的第 2 部分中,其中会充满非常酷的东西。👋
文章来源:https://dev.to/victorhazbun/modern-javascript-beginners-guide-part-1-4c10 后端开发教程 - Java、Spring Boot 实战 - msg200.com
            后端开发教程 - Java、Spring Boot 实战 - msg200.com