<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          8個(gè)在學(xué)習(xí)React之前必須要了解的JavaScript功能

          共 5168字,需瀏覽 11分鐘

           ·

          2021-04-29 09:04

          英文 | https://javascript.plainenglish.io/8-javascript-features-to-know-before-learning-reactjs-aac8b7748b30

          翻譯 | 小愛


          React是用于構(gòu)建前端Web應(yīng)用程序中最流行的JavaScript庫(kù)之一。許多前端開發(fā)人員的工作都需要具備React的技能。

          在學(xué)習(xí)React之前,你首先需要有扎實(shí)的JavaScript知識(shí)。也就是所有JavaScript基礎(chǔ)知識(shí)和技能你都需要掌握。除此之外,你還應(yīng)該了解ES6 +功能,因?yàn)槟銓⒃赗eact中需要大量使用到它們。

          如果你對(duì)JavaScript及其功能有很好的了解,那么學(xué)習(xí)JS框架會(huì)讓你變得輕松很多,學(xué)起來也會(huì)感覺容易很多。

          在本文中,我們將與你分享一些在學(xué)習(xí)React之前。必須需要了解的一些重要JavaScript功能。

          現(xiàn)在,讓我們開始吧。

          1、Let和Const

          ES6引入了let,const用于聲明變量以代替var。let與const相比有許多優(yōu)勢(shì)。

          第一個(gè)優(yōu)點(diǎn)是它們具有一個(gè)塊作用域,這意味著它們不能在該塊作用域之外訪問。

          示例如下:

          {    const a = 5;    let b = 6;    var c = 7;}console.log(a); //Error: a is not defined.console.log(b); //Error: b is not defined.console.log(c); // 7

          如你所見,在花括號(hào)之間的范圍之外,用const和let聲明的變量不可訪問。這就是為什么我們會(huì)得到一個(gè)錯(cuò)誤提示。

          因此,這非常有用,因?yàn)橛袝r(shí)var,可以使用關(guān)鍵字更改變量而你不會(huì)注意到它。

          另一個(gè)優(yōu)點(diǎn)是let與const是他們沒有提升到像關(guān)鍵字的文件的頂部var。因此,如果你使用let,則不必?fù)?dān)心const。

          你可能還想知道let和const有什么區(qū)別。好吧,它們幾乎是相似的。僅let用于以后要更改的const變量和不希望更改的常量變量。

          看下面的例子:

          const x = 5;x = 6; //Error.let y = 1;y = 2;console.log(x); // 5console.log(y); // 2
          如你所見,你無法重新分配用關(guān)鍵字聲明的變量const。這是let和const之間最大的區(qū)別。
          就個(gè)人而言,我不再使用var關(guān)鍵字。我用了很多的let和const。

          2、Arrow函數(shù)

          ES6中引入了Arrow函數(shù),這是編寫常規(guī)函數(shù)的簡(jiǎn)便方法。Arrow語法更短,更容易編寫。許多開發(fā)人員在他們的React代碼中使用它。這就是為什么你也應(yīng)該在學(xué)習(xí)React之前了解它,以便后面使用它。
          讓我們看一下如何編寫Arrow函數(shù):
          // Normal function.const greeting = function(){    console.log("hello");    console.log("world");}// Arrow function.const greeting = () => {    console.log("hello");    console.log("world");}

          如你所見,你不需要在Arrow函數(shù)中使用function關(guān)鍵字。

          同樣,如果你的arrow函數(shù)只有一行并且只有一個(gè)參數(shù),則可以編寫沒有括號(hào),沒有花括號(hào)和沒有return關(guān)鍵字的arrow語法。

          這是一個(gè)例子:

          // Normal function.const greeting = function(name){    return "Hello " + name;}// Arrow function.const greeting = name => "Hello " + name;

          Arrow功能如今無處不在,在學(xué)習(xí)React時(shí),你會(huì)經(jīng)常看到它們。

          3、解構(gòu)

          銷毀是你需要了解的重要ES6功能之一。它在React代碼上使用了很多。這就是為什么你應(yīng)該了解它。

          它允許你復(fù)制對(duì)象或數(shù)組的一部分并將其放入命名變量中。

          請(qǐng)看下面的示例,其中我們沒有使用解構(gòu):

          const user = { name: 'Mehdi', age: 19};//Without destructuring.const name = user.name; //name = 'Mehdi'const age = user.age; //age = 19console.log(name); //Mehdiconsole.log(age); //19

          這是使用ES6解構(gòu)的相同示例:

          const user = { name: 'Mehdi', age: 19};//ES6 destructuringconst { name , age } = user; //name = 'Mehdi', age = 19console.log(name); //Mehdiconsole.log(age); //119

          正如你在上面的示例中看到的那樣,第二個(gè)示例看起來更加簡(jiǎn)潔并且易于編寫。在解構(gòu)示例中,變量name和age被創(chuàng)建并從用戶對(duì)象分配值。這就是對(duì)象分解的力量。

          除此之外,還可以對(duì)數(shù)組使用解構(gòu)。只是代替對(duì)象鍵,而是根據(jù)數(shù)組中的元素索引分配變量。

          這是一個(gè)例子:

          //array destructuringconst [a, b, c] = [1, 2, 3, 4];console.log(a); //1console.log(b); //2console.log(c); //3

          如你所見,變量a,b和c獲得分配的值,這些值在numbers數(shù)組中具有相同的索引。這就是所謂的數(shù)組解構(gòu),在React中會(huì)經(jīng)常使用到它。

          4、ES6模塊

          ES6模塊import和export無處不在。因此,你需要對(duì)它們有一個(gè)很好的了解。它們使你可以將文件中的代碼共享,導(dǎo)出和導(dǎo)入到另一個(gè)文件。這是在JavaScript文件之間共享代碼的好方法。

          在原始JavaScript中,你必須首先告訴瀏覽器你正在使用模塊。你可以通過type="module"在HTML的head標(biāo)簽中添加以下代碼來實(shí)現(xiàn)。

          <script type="module" src="fileName.js"></script>

          舉例來說,假設(shè)你要將功能從一個(gè)JavaScript文件導(dǎo)入index.js到另一個(gè)名為app.js的文件中。為此,你必須先導(dǎo)出函數(shù),然后再導(dǎo)入。

          這是一個(gè)例子:

          輸出:

          export const multiply = (a, b) => {  return x * y;

          輸入:

          import { multiply } from './index.js';

          就是這樣,現(xiàn)在,你可以直接app.js文件中使用multiply功能了。

          5、ES6類

          JavaScript中的類已被引入作為一種語法,以用JavaScript編寫構(gòu)造函數(shù)。它們用于創(chuàng)建對(duì)象,并且允許使用JavaScript進(jìn)行面向?qū)ο蟮木幊獭?/span>

          但是,現(xiàn)在有了React,你將不會(huì)使用很多類。但是,了解它們總是很有必要的,因?yàn)樗鼈冊(cè)贘avaScript中非常重要。

          這是一個(gè)類語法:

          class Person{  constructor(name, age) {    this.name = name;    this.age = age;  }}//create new object from the class using the new keywordlet myPerson = new Person("John", 25); //{ name: 'John', age: 25}

          因此,類只是用JavaScript編寫面向?qū)ο蟠a的一種新的簡(jiǎn)便方法。

          6、高階函數(shù)

          高階函數(shù)是將另一個(gè)函數(shù)作為參數(shù)的任何函數(shù)。在JavaScript中,可以使用許多有用的高階函數(shù)。map,filter和reduce會(huì)是你在React中大量使用到的函數(shù)。因此,你需要很好地理解它們。

          map方法允許你遍歷每個(gè)數(shù)組元素,并返回一個(gè)包含映射元素的新數(shù)組。

          這是一個(gè)例子:

          let numbers = [6, 7 , 8, 3, 2];numbers.map(number => number * 2); //[12, 14, 16, 6, 4]

          filter方法允許你遍歷每個(gè)數(shù)組元素,并在新數(shù)組中過濾所需的元素。

          這是一個(gè)例子:

          let numbers = [6, 7 , 8, 3, 2];numbers.filter(number => number < 5); //[3, 2]

          reduce方法還用于數(shù)組,它將數(shù)組元素減少為單個(gè)值。

          這是一個(gè)使用reduce方法返回?cái)?shù)字?jǐn)?shù)組總數(shù)的示例:

          let numbers = [6, 7 , 8, 3, 2];numbers.reduce((accumulator, num) => accumulator + num);//returns 26

          7、展開運(yùn)算符

          展開運(yùn)算符,也是我在React中經(jīng)常使用的功能之一。它允許在JavaScript中傳播可迭代對(duì)象的值。

          你可以使用它來復(fù)制對(duì)象和數(shù)組。還可以組合復(fù)制對(duì)象和數(shù)組。

          讓我們看一個(gè)在JavaScript中使用展開運(yùn)算符的簡(jiǎn)單示例:

          //copy and combine two objectslet obj1 = {name: "Mehdi", age: 19};let obj2 = {eyeColor: "Black", hairColor: "Black"};//using the spread operator.let combination = {...obj1, ...obj2};console.log(combination);//output: {name: "Mehdi", age: 19, eyeColor: "Black", hairColor: "Black"}

          這是數(shù)組的另一個(gè)示例:

          //copy and combine two arrayslet arr1 = [1, 2, 3];let arr2 = [5, 6, 7, 8];let combination = [...arr1, ...arr2];console.log(combination);//output: [1, 2, 3, 5, 6, 7, 8]

          如你在上面的示例中所看到的,散布運(yùn)算符使我們能夠輕松地復(fù)制和組合數(shù)組和對(duì)象。因此,它非常有用,你應(yīng)該學(xué)習(xí)它。

          8、三元運(yùn)算符

          三元運(yùn)算符,是在JavaScript中編寫條件語句的一種簡(jiǎn)便方法。

          我注意到大多數(shù)時(shí)候,我使用三元運(yùn)算符有條件地在React中渲染事物。這就是為什么我認(rèn)為你在學(xué)習(xí)React之前,而應(yīng)該先學(xué)習(xí)一下JavaScript中的三元運(yùn)算符的原因。

          看下面的例子:

          let isOnline = true;// if else statement.if(isOnline){    console.log("He is Online.");}else{    console.log("He is Offline.");}//He is Online
          //Same example using the ternary operator[condition] ? [if] : [else]isOnline ? console.log("He is Online.") : console.log("He is Offline."); //He is Online
          如你所見,三元運(yùn)算符可以輕松的僅用一行代碼編寫條件語句。它在小條件下非常有用,我更喜歡使用它在React中渲染事物。

          結(jié)論

          如果你想學(xué)習(xí)React或任何其他JavaScript框架,我上面列出的所有這些JavaScript功能都非常重要。如果你了解這些內(nèi)容,學(xué)習(xí)框架將變得輕而易舉。除此之外,我還建議在轉(zhuǎn)向React之前學(xué)習(xí)Async / Await和fetch API之類的東西。
          感謝你閱讀本文,希望你覺得它對(duì)你有用。

          學(xué)習(xí)更多技能

          請(qǐng)點(diǎn)擊下方公眾號(hào)

          瀏覽 30
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲巨乳在线 | 黄片视频免费观看 | 成人做爰黄 片视频动漫 | 欧美成人考逼视频 | 久久久www成人免费毛片 |