es5與es6常用語(yǔ)法教程(1)

前言

我們?cè)陂_發(fā)ReactNative或者是看別人開源項(xiàng)目時(shí),總是發(fā)現(xiàn)很多開發(fā)同學(xué)是es5和es6語(yǔ)法混合著開發(fā)的,但是對(duì)于非前端開發(fā)的小伙伴們來(lái)說(shuō)霜浴,可能對(duì)es5/es6的一些常用的語(yǔ)法不熟或經(jīng)常記混淆,導(dǎo)致程序報(bào)錯(cuò),影響開發(fā)效率乳蛾,在這我就總結(jié)一些js開發(fā)中常用的es5和es6語(yǔ)法。

js常用語(yǔ)法系列教程如下

函數(shù)寫法區(qū)別

計(jì)算a, b兩個(gè)數(shù)字之和峦萎,有返回值

  • es5 寫法
function add(a, b) {
    return a + b;
}
  • es6 寫法(箭頭函數(shù))
let add = (a, b) => {
    return a + b
}

注意:

  • 箭頭函數(shù)作用于執(zhí)行代碼屡久,這時(shí)使用{}
let add = (a, b) => {a + b}

  • 當(dāng)執(zhí)行的代碼語(yǔ)句只有一個(gè)邏輯表達(dá)式,這時(shí)可以省略{}
let add = (a, b) => a + b
  • 箭頭函數(shù)用于返回對(duì)象時(shí)爱榔,這時(shí)使用()
let add = (a, b) => (c)

  • 箭頭函數(shù)的參數(shù)當(dāng)只有一個(gè)參數(shù)時(shí)被环,這時(shí)可以省略參數(shù)的()
let add = a => alert(a)

打印計(jì)算結(jié)果,沒有返回值

  • es5
function printSum(a, b) {
    console.log(a + b);
}
  • es6
let printSum = (a, b) => {
    console.log(a + b)
}

省略{}

let printSum = (a, b) => console.log(a + b)

函數(shù)執(zhí)行多條邏輯語(yǔ)句

  • es5
function printAB(a, b){
    console.log(a);
    console.log(b);
}
  • es6
let printAB = (a, b) => {
    console.log(a)
    console.log(b)
}

創(chuàng)建對(duì)象區(qū)別

es5和es6創(chuàng)建對(duì)象方式的不同

  • es5
let App = React.createClass({
    render: function(){
        return (
            <View>
                <Text>這是es5創(chuàng)建的對(duì)象</Text>
            </View>
        )
    }
})
  • es6
class App extends React.Component{
    render() {
        return (
            <View>
                <Text>這是es6創(chuàng)建的對(duì)象</Text>
            </View>
        )
    }
}

注意:

  • render函數(shù)內(nèi)可以返回視圖組件详幽,也可以返回其他的對(duì)象
  • 如果return函數(shù)中如果返回視圖組件筛欢,則視圖組件一定要使用()包裹起來(lái)
  • ()中只能有一個(gè)頂級(jí)視圖標(biāo)簽

這種寫法就屬于()中有2個(gè)頂級(jí)標(biāo)簽, 這種會(huì)語(yǔ)法報(bào)錯(cuò)

let App = React.createClass({
    render: function(){
        return (
            <Text>這是es5創(chuàng)建的對(duì)象</Text>
            <Text>這是es5創(chuàng)建的對(duì)象</Text>
        )
    }
})

導(dǎo)入導(dǎo)出模塊方式區(qū)別

導(dǎo)出方式

  • es5
module.exports = App
  • es6
export default App

當(dāng)只導(dǎo)出一個(gè)模塊時(shí),可以直接使用下面的寫法

export default class App extents Component {}

注意:

下面的兩種導(dǎo)出方式唇聘,導(dǎo)入模塊時(shí)版姑,寫法不一樣

  • 方式1
// 導(dǎo)出
export default App

// 導(dǎo)入
import App from './App'
  • 方式2
// 導(dǎo)出
export {App}

// 導(dǎo)入
import {App} from './App'

導(dǎo)入方式

  • es5
var App = require('./App');
  • es6
import App from './App'

注意:

當(dāng)es5和es6的導(dǎo)入導(dǎo)出方式混用時(shí),切記:當(dāng)使用es6導(dǎo)出模塊迟郎,使用es5導(dǎo)入模塊剥险,這時(shí)程序會(huì)報(bào)錯(cuò)

設(shè)置默認(rèn)的導(dǎo)入導(dǎo)出模塊

  • es6 設(shè)置默認(rèn)導(dǎo)出的內(nèi)容
export default function dinner(fruit, dessert){
    console.log(`${fruit}+${dessert}`)
}

或者

function dinner(fruit, dessert){
    console.log(`${fruit}+${dessert}`)
}

export default dinner

注意:

當(dāng)需要導(dǎo)出一個(gè)js文件中的全部模塊時(shí),使用 * as xxx 語(yǔ)法

function fruit(fruit){
    console.log(fruit)
}

function dessert (dessert ){
    console.log(dessert )
}

// 導(dǎo)出全部模塊
export {fruit, dessert}

// 導(dǎo)入全部模塊
import * as chef from './xxx'

console.log(chef.fruit)
console.log(chef.dessert)

導(dǎo)入導(dǎo)出模塊重命名

導(dǎo)出和導(dǎo)入模塊時(shí)宪肖,可以重命名模塊的名字

  • 導(dǎo)出重命名
let fruit = '蘋果'
let dessert = '面包'

function dinner( fruit, dessert){
    console.log(`${fruit}+${dessert}`)
}

// 導(dǎo)出模塊dinner函數(shù)的名字重命名為supper
export {dinner as supper}

// 導(dǎo)入supper模塊
import {supper} from './App'
  • 導(dǎo)入重命名
let fruit = '蘋果'
let dessert = '面包'

function dinner( fruit, dessert){
    console.log(`${fruit}+${dessert}`)
}

// 導(dǎo)出模塊dinner函數(shù)
export {dinner}

// 導(dǎo)入dinner模塊表制,并重命名為supper
import {dinner as supper} from './App'

總結(jié)

至此完成了es5健爬,es6基礎(chǔ)語(yǔ)法的第一部分,后面的部分未完待續(xù)么介。文中有錯(cuò)誤的地方娜遵,請(qǐng)同學(xué)們及時(shí)留言提出。歡迎ReactNative開發(fā)的同學(xué)們加QQ交流群:620792950壤短。大家一起交流學(xué)習(xí)设拟。

福利時(shí)間

  • 作者React Native開源項(xiàng)目OneM地址(按照企業(yè)開發(fā)標(biāo)準(zhǔn)搭建框架設(shè)計(jì)開發(fā)):https://github.com/guangqiang-liu/OneM (歡迎小伙伴們 star)
  • 作者簡(jiǎn)書主頁(yè):包含50多篇RN開發(fā)相關(guān)的技術(shù)文章http://www.reibang.com/u/023338566ca5 (歡迎小伙伴們:多多關(guān)注多多點(diǎn)贊)
  • 作者React Native QQ技術(shù)交流群:620792950 歡迎小伙伴進(jìn)群交流學(xué)習(xí)
  • 友情提示:在開發(fā)中有遇到RN相關(guān)的技術(shù)問題久脯,歡迎小伙伴加入交流群(620792950)纳胧,在群里提問、互相交流學(xué)習(xí)桶现。交流群也定期更新最新的RN學(xué)習(xí)資料給大家躲雅,謝謝支持!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末骡和,一起剝皮案震驚了整個(gè)濱河市相赁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌慰于,老刑警劉巖钮科,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異婆赠,居然都是意外死亡绵脯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門休里,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蛆挫,“玉大人,你說(shuō)我怎么就攤上這事妙黍°睬郑” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵拭嫁,是天一觀的道長(zhǎng)可免。 經(jīng)常有香客問我,道長(zhǎng)做粤,這世上最難降的妖魔是什么浇借? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮怕品,結(jié)果婚禮上妇垢,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好修己,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布恢总。 她就那樣靜靜地躺著,像睡著了一般睬愤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纹安,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天尤辱,我揣著相機(jī)與錄音,去河邊找鬼厢岂。 笑死光督,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的塔粒。 我是一名探鬼主播结借,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼卒茬!你這毒婦竟也來(lái)了船老?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤圃酵,失蹤者是張志新(化名)和其女友劉穎柳畔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體郭赐,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡薪韩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捌锭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俘陷。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖观谦,靈堂內(nèi)的尸體忽然破棺而出拉盾,到底是詐尸還是另有隱情,我是刑警寧澤坎匿,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布盾剩,位于F島的核電站,受9級(jí)特大地震影響替蔬,放射性物質(zhì)發(fā)生泄漏告私。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一承桥、第九天 我趴在偏房一處隱蔽的房頂上張望驻粟。 院中可真熱鬧,春花似錦、人聲如沸蜀撑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)酷麦。三九已至矿卑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沃饶,已是汗流浹背母廷。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留糊肤,地道東北人琴昆。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像馆揉,于是被迫代替她去往敵國(guó)和親业舍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 官方中文版原文鏈接 感謝社區(qū)中各位的大力支持升酣,譯者再次奉上一點(diǎn)點(diǎn)福利:阿里云產(chǎn)品券舷暮,享受所有官網(wǎng)優(yōu)惠,并抽取幸運(yùn)大...
    HetfieldJoe閱讀 3,658評(píng)論 2 27
  • React Native之React速學(xué)教程(下) 本文出自《React Native學(xué)習(xí)筆記》系列文章拗踢。 Rea...
    CrazyCodeBoy閱讀 1,161評(píng)論 0 117
  • 還在摩洛哥的時(shí)候,就看到了朋友轉(zhuǎn)的一條推送君纫,說(shuō)家附近的一條商業(yè)街突然要拆遷驯遇,所有的商家都要搬走。起初是不信的蓄髓,畢竟...
    尛騰_Logo閱讀 371評(píng)論 15 14
  • c#調(diào)用java非靜態(tài)方法 C#調(diào)用靜態(tài)類叉庐,靜態(tài)方法 ; CustomClass的靜態(tài)類,SetData是它的靜...
    UnityAsk閱讀 1,819評(píng)論 0 2
  • 校園這個(gè)開始和結(jié)束一切美好的地方 我們都經(jīng)歷了最初的錯(cuò)過 你沒來(lái)陡叠、來(lái)了...停留了一小會(huì) 在還沒清醒的邂逅中又離開...
    早起小土豆閱讀 284評(píng)論 0 0