”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Javascript 很难(有悲伤)

Javascript 很难(有悲伤)

发布于2024-11-06
浏览:310

Javascript is HARD (with ESadness)

这将是一个很长的阅读,但让我再说一遍。
JAVASCRIPT很难。上次我们见面时,我正在踏入 Javascript 的世界,一个眼睛明亮、充满希望的程序员踏入野生丛林,说“这能有多难?”。我错得有多离谱??事情变得更难了,我(勉强)活了下来,这是关于我的旅程的一个小混乱的故事。

变量:疯狂的开始
变量是保存值的容器,您可以在其中存储或操作数据。我的意思是,为什么我们有 3 种方法来创建它们:var、let 和 const?为什么? 在 ES6 中笑
var:他们说 var 是一门松散的大炮。就像玩机会游戏一样。别靠近它。
let:非常适合可以更改的变量。更容易管理。
Const:用于保持不变的值。不可移动的。哦 - const 并不意味着该值不能改变,它只是意味着你不能重新分配它。
注: ECMAScript 2015 或 ES6 是 JavaScript 的第二次重大修订。
哦,我们告别了字符串连接,你好模板文字。使用模板文字您现在可以使用反引号并通过 ${} 轻松嵌入变量。生活在这里变得容易了一些,但是弄清楚何时使用反引号和引号?又一个脑洞大开的。

// Good old concat
const message = "Hi, "   name   ". You are "   age   " years old.";
// Template literal
const message = `Hi, ${name}! You are ${age} years old.`;

功能:又名可重用性先生、可维护性先生...
函数是执行任务的一组语句。由函数关键字、函数名、是否有参数、大括号内的Js语句组成。

function greet() {
  console.log("Hello, fellow strugglers?!");
}

它们一开始看起来很简单:封装一些逻辑,调用它(我说调用它),然后繁荣!你正在编码。
然后ES6说“这是箭头函数,使用它”。箭头函数看起来很简单吧?只是编写函数的一种简短方法。花了一段时间我才掌握了语法。

const greet = () => {
   console.log("Hello, fellow strugglers?!");
}

循环:与无限共舞。
受苦的多种方式。循环可以多次执行一段代码。如果您想一遍又一遍地运行相同的代码,并且每次都使用不同的值,那么它们很方便。他们有很多:
1. While Loop:只要条件为真就一直循环。邪恶的。我不是在谈论它的表弟 do-while。
2. for 循环: 好老的 for 循环,老兄。值得信赖的 for 循环。如此熟悉。非常安全,并且当您忘记递增变量时很有可能引发无限循环。
3. forEach: 这就像 for 循环更酷、更时髦的表弟。它不需要计数器,也不会让我走向无限。我的男人。
4. & 5. for..in 和 for..of:一个非常适合循环对象,另一个则用于迭代数组。我不断地把它们混在一起,并通过痛苦来学习。还在学习中。

//for loop
for (let i = 0; i  console.log(num));

数组:不断寻找的列表
数组一开始很有希望。一个简单的项目列表。把东西推进去,把东西拉出来。很简单吧?

let shoppingList = ["apples", "bananas", "chocolate"];
shoppingList.push("ice cream");
console.log(shoppingList); // ['apples', 'bananas', 'chocolate', 'ice cream']

输入filter、map、find以及数组方法组的其余部分。从那以后我的大脑就不一样了。
filter() 方法创建一个新数组,其中填充了通过函数提供的测试的元素。
find() 方法返回通过测试的第一个元素的值。数组方法太多了,每个方法都需要文档吗?我的意思是有长度、拼接、切片、连接、弹出、推送、unshift、shift、map..,让我们到此为止。

let numbers = [1, 2, 3, 4, 5];
let evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4]

对象:数组的令人困惑的表亲
然后是物体。对象有点像数组,但具有键和值。我当时想,“酷,我能处理这个。”但后来 JavaScript 引入了方法,突然间对象就可以自己做事了。然后对象数组就进入了方程式。访问属性我使用点符号或方括号符号。别让我从 .this
开始

//Without method
let shoppingCart = {
  apples: 3,
  bananas: 2,
  chocolate: 1
};
// with method
let cart = {
  items: ["apple", "banana"],
  addItem(item) {
    this.items.push(item);
  }
};
cart.addItem("chocolate");
console.log(cart.items); // ['apple', 'banana', 'chocolate']

DOM 操作:真正的斗争开始的地方
一旦我对数组和对象充满信心,我就想:“是时候操作 DOM 了!我现在几乎是一名网络开发人员了!”耶哥蕊特有句名言,你什么都不知道。
这应该很容易,我又说了一遍。只需抓取一个元素并更改它即可。如果它是一个 ID,getElementbyId 就适合我。 getElementsbyClassName 类也存在,或者是 queryselector 以及其所有兄弟的类。
然后就是整个 addEventListener 业务。当然,这确实有效,但有时,事件似乎有自己的想法一样。
然后我尝试创建一个购物车。我花了几天的时间,向我博学的同事发出了很多求救信号。这里我是appendChild、removeChild、createElements、抓取元素、设置属性、样式、在函数上调用函数。
然后大胆的添加了mock数据库;我又和数组操作了。我正在访问,我正在推动,我正在寻找,我累了(再次站起来)。

进出口:大胆分享疯狂??
在某个时候,我编写了太多的 JavaScript,以至于我需要模块化我的代码。输入导入和导出。

Copy code
// module.js
export function greet() {
  console.log("Hello from the module!");
}

// main.js
import { greet } from './module.js';
greet();

我认为将我的代码分成更小的部分会让事情变得更容易。我几乎不知道,我最终会陷入一片混乱。

现在我要开始面向对象编程(OOP)听起来很花哨,但是让我先享受我的周末,然后再迷路。
感谢您坚持到最后。目标仍然是每天进步 1%。 #ES6 #CodingStruggles #WebDevelopment #JavaScriptMadness #ProgrammingHumor #LearnToCode

版本声明 本文转载于:https://dev.to/rockhillz/javascript-is-hard-with-es6-madness-47j9?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 小Swoole数据库
    小Swoole数据库
    Small Swoole Db 2.3引入左连接: $selector = (new TableSelector('user')) ->leftJoin('post', 'messageOwner', 'message') ; $selector->where() -&g...
    编程 发布于2024-11-06
  • 如何使用汇编指令优化 __mm_add_epi32_inplace_purego 函数,以在位置总体计数操作中获得更好的性能?
    如何使用汇编指令优化 __mm_add_epi32_inplace_purego 函数,以在位置总体计数操作中获得更好的性能?
    使用程序集优化 __mm_add_epi32_inplace_purego此问题旨在优化 __mm_add_epi32_inplace_purego 函数的内部循环,该函数对字节数组执行位置填充计数。目标是通过利用汇编指令来提高性能。内部循环的原始 Go 实现: __mm_add_epi32_...
    编程 发布于2024-11-06
  • 使用 React Router 进行导航 React Js 第一部分 React 应用程序中的路由指南
    使用 React Router 进行导航 React Js 第一部分 React 应用程序中的路由指南
    欢迎回到我们的 React 系列!在之前的文章中,我们介绍了组件、状态、道具和事件处理等基本概念。现在,是时候使用 React Router 探索 React 应用程序中的路由了。路由允许您在应用程序内的不同视图或组件之间导航,从而创建无缝的用户体验?. 什么是 React 路由器?...
    编程 发布于2024-11-06
  • file_get_contents() 可以用于 HTTP 文件上传吗?
    file_get_contents() 可以用于 HTTP 文件上传吗?
    使用 HTTP Stream Context 通过 file_get_contents() 上传文件使用 cURL 扩展可以无缝地实现通过 Web 表单上传文件。不过,也可以使用 PHP 的 file_get_contents() 函数结合 HTTP 流上下文来执行文件上传。Multipart Co...
    编程 发布于2024-11-06
  • React 中的 UseEffect
    React 中的 UseEffect
    欢迎来到 React Hooks 的世界!今天,我们将深入探讨最流行的挂钩之一:useEffect。别担心,我们会让它变得有趣且易于理解。那么,让我们开始吧! ? ?什么是useEffect useEffect 是一个 React Hook,允许您在功能组件中执行副作用。副作用是在组件外部发生的操作...
    编程 发布于2024-11-06
  • 如何在 Google Cloud Platform 免费层上构建现代数据平台
    如何在 Google Cloud Platform 免费层上构建现代数据平台
    我在 Medium.com 上发布了一系列七篇免费公开文章“如何在 Google Cloud Platform 免费层上构建现代数据平台”。 主要文章位于:https://medium.com/@markwkiehl/building-a-data-platform-on-gcp-0427500f...
    编程 发布于2024-11-06
  • 帖子 #f 挣扎
    帖子 #f 挣扎
    这篇文章是关于我迄今为止在编码和学习方面的挣扎 一个。我只能保持专注一个小时,最多两个小时。 b.我很容易分心 c.我不能久坐,否则我会开始感到烦躁和休息腿部问题。 我想到的有助于解决问题的解决方案 一个。我需要开始更频繁地使用我的番茄工作法应用程序 B. 我开始将手机调成振动,如果我有另一个屏幕...
    编程 发布于2024-11-06
  • 面向 Web 开发人员的热门 Chrome 扩展 4
    面向 Web 开发人员的热门 Chrome 扩展 4
    2024 年最适合 Web 开发者的 10 款 Chrome 扩展 随着 2024 年的进展,Chrome 扩展程序已成为 Web 开发人员工具包中不可或缺的一部分,在浏览器中提供强大的功能。在这篇文章中,我们将探讨今年在 Web 开发社区掀起波澜的 10 大 Chrome 扩展程...
    编程 发布于2024-11-06
  • 如何使用 React Router v4/v5 嵌套路由:简化指南
    如何使用 React Router v4/v5 嵌套路由:简化指南
    React Router v4/v5 的嵌套路由:简化指南使用 React Router 时,嵌套路由是组织的关键技术您的应用程序的导航。然而,新手经常面临设置嵌套路由的挑战。本文旨在简化使用 React Router v4/v5 的过程。React Router v4 在路由嵌套方式上引入了重大转...
    编程 发布于2024-11-06
  • 如何使用 UTF8 字符编码保留 MySQL 中的表格式?
    如何使用 UTF8 字符编码保留 MySQL 中的表格式?
    使用 UTF8 字符编码增强 MySQL 命令行格式使用存储在数据库表中的瑞典语和挪威语字符串时,查询数据时可能会遇到表格式问题使用不同的字符集。问题陈述默认情况下,使用“set names latin1;”产生失真的输出: ----------------------------------- ...
    编程 发布于2024-11-06
  • CSS 盒子模型
    CSS 盒子模型
    CSS 盒子模型是 Web 开发中的一个基本概念,它构成了 Web 布局和设计的基础。它决定了元素的大小、内容的呈现方式以及它们在网页上如何相互交互。掌握盒模型对于任何使用 HTML 和 CSS 的开发人员来说都是至关重要的,因为它会影响元素的显示、间隔和对齐方式。 在本文中,我们将详细探讨 CSS...
    编程 发布于2024-11-06
  • 我如何编写 CSS 选择器
    我如何编写 CSS 选择器
    有很多 CSS 方法,但我讨厌它们。有些多(顺风等),有些少(BEM、OOCSS 等)。但归根结底,它们都有缺陷。 当然,人们使用这些方法有充分的理由,并且解决的许多问题我也遇到过。因此,在这篇文章中,我想写下我自己的关于如何保持 CSS 组织的指南。 这不是一个任何人都可以开始使用的完整描述的 C...
    编程 发布于2024-11-06
  • 为什么输入元素不支持 HTML5 中的 ::after 伪元素?
    为什么输入元素不支持 HTML5 中的 ::after 伪元素?
    ::before 和 ::after 的伪元素兼容性在 HTML5 中,::before 和 ::after 伪元素可以使用附加内容(例如图标或复选标记)增强元素。然而,并非所有元素都完全支持这些伪元素。输入元素和 ::after在提供的示例中,::after 伪元素不是显示在输入元素上。这是因为类...
    编程 发布于2024-11-06
  • 如何使用 PHP 确定特定时区的星期几?
    如何使用 PHP 确定特定时区的星期几?
    在 PHP 中确定指定时区的星期几在 PHP 中处理日期和时间时,处理起来可能具有挑战性时区并计算具体值,例如星期几。本文将指导您完成使用 PHP 查找特定时区中的星期几的过程。了解用户的时区要确定用户的时区,您需要使用 PHP 函数 date_default_timezone_get()。此函数返...
    编程 发布于2024-11-06
  • 如何在 Go 通道中有效地生成不同的值?
    如何在 Go 通道中有效地生成不同的值?
    在 Go Channel 中高效生成不同值在 Go 中,Channel 为并发通信提供了强大的机制。但是,在使用通道时,您可能会遇到需要过滤掉重复值或确保仅发出不同值的情况。本文探讨了创建仅输出唯一值的通道的有效方法。生成不同值的挑战考虑以下场景:您有一个通道接收多个值,并且您希望迭代它,同时仅打印...
    编程 发布于2024-11-06

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3