您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > javascript

成为JS专家之前必须掌握这10件事

时间:2020-12-30 15:14:59  来源:  作者:
成为JS专家之前必须掌握这10件事

 

多年来,JAVAScript发生了很大的变化,并已成为最流行的语言之一。 这是我的,并且有很多开发人员喜欢/首选的编码语言,因此,您绝对应该首先尝试这10件事。

This和Global

" this"是关于JavaScript最令人困惑的事情之一,在ES2020中,我们获得了" globalThis",这无疑有助于简化事情并在其他" this"之间建立明确的区分。

之所以得到" globalThis",是因为在浏览器中,global是"窗口",在NodeJs中是" global",而在worker内部是" self"。一团糟吧?

一些语言(如swift和Python)将其称为"self",而其他语言(如Java)则将其称为" this",而Javascript" this"的行为则有所不同。

" this"可以指对象或类的实例。它也根据函数调用方式而变化。它是您所处的上下文,并且在严格和非严格模式下也会发生变化。需要更多理由真正尝试掌握它吗?

对象

Javascript中的一切都是对象。这应该是寻求使用Javascript掌握对象的唯一原因,但让我告诉您更多。

Class和Array是事物的两个示例,它们只是底层的对象。要了解对象,您需要了解Javascript的原型性质,包括原型继承和原型。

这些属性使Javascript如此灵活,并且是您可以使用Java进行几乎所有操作的核心原因之一。您使用的每个库和工具都会在后台使用对象原型,这会让您想要创建东西。

掌握对象之后,您必须掌握Class,这些Class只是对象和底层的构造函数。

当您了解对象时,您将了解Javascript类的局限性和强大功能。如果您来自于面向对象的语言,或者是对面向对象编程的狂热爱好者,那么引入类就可以使整体成为可能。

类已成为开发人员避免使用Javascript怪异的原型性质而只关注于正在构建的事物的首选方法。

作用域和闭包

我试图向某人解释作用域和闭包,这让我很震惊。 人们常常被他们弄糊涂,并且没有意识到作用域是如何在给定上下文的情况下对如何执行代码有很多要求的。

对我来说,作用域是关于创建盒子,而闭包只是一个特殊的盒子。 我实际上创建了一个视频试图对其进行解释。 让我知道你的想法?

了解作用域将帮助您创建可一起使用的代码,并且如果您喜欢封装和函数式编程的想法,那么闭包只是您应该使用的强大工具。

数据结构

这是一个很大的话题,但是如果不了解数据结构,就无法做我今天做的事情,也无法理解如何创建Web上的东西。

在任何语言中,尤其是在数组实际上不是数组的Java语言中,这都是一个重要的主题?

了解数据结构是工程师的思维方式。这是一条真正使您与其他开发人员区分开的知识。

单线程,非阻塞,异步,并发

这几乎就是Javascript的定义,并且理解它的含义是专业级的东西。

了解为什么Javascript是单线程的将告诉您它更适合哪种应用程序。

我实际上阅读了一篇不错的文章,但我建议您真正研究本节的标题,并熟悉该语言。

Promise与异步等待

每当我用其他语言编写代码时,除了promise和async-await外,没有什么比我玩的多,而且我喜欢Javascript Promise和Async await。

这是您需要了解Javascript如何工作的内容。 承诺是神奇的,它为异步编程提供了很多目的。

Promises and async…await允许您偏离传统的线性方式来执行程序,该方法对于像Javascript这样的单线程语言来说,使其变得更强大,更快速,而无需花费大量资源来创建专用线程。

Promises +单线程使Javascript成为构建快速可靠的Rest Api和实时通信应用程序的最佳选择之一。

函数式编程

我认为,没有什么比Javascript的函数更胜一筹了。它选中每个框,这是仅次于Objects的第二种最强大的语言。

因为Javascript如此灵活和丰富,它允许您以任何样式进行编程,其中之一就是函数式编程样式。

您可以使用函数执行任何操作,并且与函数有关的技巧无穷无尽。 如果您喜欢函数式或任何其他声明式编程,则必须掌握函数。

控制流

这是任何语言的基础。逐步学习如何工作将使您能够将简单到复杂的算法组合在一起,从而使您可以创建更复杂的程序。

控制流正在理解如何逐步执行事物以及它如何影响结构。即使您没有编写应用程序,它也将帮助您快速调试和理解任何应用程序。

网络请求和Ajax

在某些时候,您将需要发出请求,并且处理通过网络获取的数据是一项必不可少的技能,尤其是现在数据是任何应用程序的重要组成部分。

了解使用fetch或XHR API的方法将很方便,但您不仅限于此类本机API。 目的是了解您在应用程序中通过网络获取数据的方式。

在某些时候,您将不得不处理庞大的数据负载或依赖大量数据的应用程序。

结论

您成为专业人士的方式就是这些小部分。通过大量的练习逐步掌握每个步骤。

您只要阅读一下内容都没关系。您必须在尽可能多的不同情况下反复尝试。

祝你好运!

(本文由闻数起舞翻译自Wing Puah的文章《10 Things to Master About Javascript Before You Call Yourself a Pro》,转载请注明出处,原文链接:https://medium.com/swlh/10-things-to-master-about-javascript-before-you-call-yourself-a-pro-2a5fe237e6ac)



Tags:JS   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言JDBC访问Postgresql的jsonb类型字段当然可以使用Postgresql jdbc驱动中提供的PGobject,但是这样在需要兼容多种数据库的系统开发中显得不那么通用,需要特殊处理。本文介绍...【详细内容】
2021-12-23  Tags: JS  点击:(12)  评论:(0)  加入收藏
1. 检测一个对象是不是纯对象,检测数据类型// 检测数据类型的方法封装(function () { var getProto = Object.getPrototypeOf; // 获取实列的原型对象。 var class2type =...【详细内容】
2021-12-08  Tags: JS  点击:(23)  评论:(0)  加入收藏
前言前几天有粉丝在群里问了一个json文件处理的问题。看上去他只需要follower和ddate这两个字段下的对应的值。我们知道json是一种常见的数据传输形式,所以对于爬取数据的数...【详细内容】
2021-12-07  Tags: JS  点击:(40)  评论:(0)  加入收藏
作者:前端进阶者来源:前端进阶学习交流一、前言 我们经常在网页上 ,游戏界面加载时会看到加载进度条的效果,我们往往会以为这些加载进度条的效果,很难实现。今天教大家JS+CSS结合...【详细内容】
2021-11-05  Tags: JS  点击:(45)  评论:(0)  加入收藏
今天我们将尝试下花 1 分钟的时间简单地了解下什么是 JS 代理对象(proxies)?我们可以这样理解,JS 代理就相当于在对象的外层加了一层拦截,在拦截方法里我们可以自定义一些个性化...【详细内容】
2021-10-18  Tags: JS  点击:(51)  评论:(0)  加入收藏
带有多个条件的 if 语句把多个值放在一个数组中,然后调用数组的 includes 方法。// bad if (x === "abc" || x === "def" || x === "ghi" || x === "jkl") { //logic } // be...【详细内容】
2021-09-27  Tags: JS  点击:(58)  评论:(0)  加入收藏
利用JS的CryptoJS 3.x和PHP的openssl_encrypt,openssl_decrypt实现AES对称加密解密,由于需要两种语言对同一字符串的操作,而CryptoJS 的默认加密方式为“aes-256-cbc”,PHP端也...【详细内容】
2021-09-16  Tags: JS  点击:(79)  评论:(0)  加入收藏
作者:JShaman.com:w2sft内容预告:本文将实例讲解以下JS代码混淆加密技术:方法名转义和转码、成员表达式转IIFE、函数标准化、数值混淆、布尔型常量值混淆、二进制表达式转为调用...【详细内容】
2021-09-03  Tags: JS  点击:(81)  评论:(0)  加入收藏
Web 浏览器日益强大,网站和 Web 应用程序的复杂性也在增加。几十年前需要超级计算机的操作现在可以在智能手机上运行,其中之一就是人脸检测。检测和分析人脸的能力非常有用,因...【详细内容】
2021-08-20  Tags: JS  点击:(105)  评论:(0)  加入收藏
shell脚本是一个命令语言,面向的是操作系统执行。如果写过shell脚本的话,应该体会过编写过程的痛苦。因为shell并不是一个编程语言,并不支持常见的数组,JSON等数据结构,也不支持...【详细内容】
2021-08-09  Tags: JS  点击:(109)  评论:(0)  加入收藏
▌简易百科推荐
1、通过条件判断给变量赋值布尔值的正确姿势// badif (a === 'a') { b = true} else { b = false}// goodb = a === 'a'2、在if中判断数组长度不为零...【详细内容】
2021-12-24  Mason程    Tags:JavaScript   点击:(5)  评论:(0)  加入收藏
给新手朋友分享我收藏的前端必备javascript已经写好的封装好的方法函数,直接可用。方法函数总计:41个;以下给大家介绍有35个,需要整体文档的朋友私信我,1、输入一个值,将其返回数...【详细内容】
2021-12-15  未来讲IT    Tags:JavaScript   点击:(19)  评论:(0)  加入收藏
1. 检测一个对象是不是纯对象,检测数据类型// 检测数据类型的方法封装(function () { var getProto = Object.getPrototypeOf; // 获取实列的原型对象。 var class2type =...【详细内容】
2021-12-08  前端明明    Tags:js   点击:(23)  评论:(0)  加入收藏
作者:一川来源:前端万有引力 1 写在前面Javascript中的apply、call、bind方法是前端代码开发中相当重要的概念,并且与this的指向密切相关。本篇文章我们将深入探讨这个关键词的...【详细内容】
2021-12-06  Nodejs开发    Tags:Javascript   点击:(18)  评论:(0)  加入收藏
概述DOM全称Document Object Model,即文档对象模型。是HTML和XML文档的编程接口,DOM将文档(HTML或XML)描绘成一个多节点构成的结构。使用JavaScript可以改变文档的结构、样式和...【详细内容】
2021-11-16  海人为记    Tags:DOM模型   点击:(34)  评论:(0)  加入收藏
入口函数 /*js加载完成事件*/ window.onload=function(){ console.log("页面和资源完全加载完毕"); } /*jQuery的ready函数*/ $(document).ready(function(){ co...【详细内容】
2021-11-12  codercyh的开发日记    Tags:jQuery   点击:(35)  评论:(0)  加入收藏
一、判断是否IE浏览器(支持判断IE11与edge)function IEVersion() {var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串var isIE = userAgent.indexOf("comp...【详细内容】
2021-11-02  V面包V    Tags:Javascript   点击:(39)  评论:(0)  加入收藏
Null、Undefined、空检查普通写法: if (username1 !== null || username1 !== undefined || username1 !== '') { let username = username1; }优化后...【详细内容】
2021-10-28  前端掘金    Tags:JavaScript   点击:(50)  评论:(0)  加入收藏
今天我们将尝试下花 1 分钟的时间简单地了解下什么是 JS 代理对象(proxies)?我们可以这样理解,JS 代理就相当于在对象的外层加了一层拦截,在拦截方法里我们可以自定义一些个性化...【详细内容】
2021-10-18  前端达人    Tags:JS   点击:(51)  评论:(0)  加入收藏
带有多个条件的 if 语句把多个值放在一个数组中,然后调用数组的 includes 方法。// bad if (x === "abc" || x === "def" || x === "ghi" || x === "jkl") { //logic } // be...【详细内容】
2021-09-27  羲和时代    Tags:JS   点击:(58)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条