函数写法区别

计算a, b两个数字之和,有返回值

  • es5 写法
function add(a, b) {
return a + b;
}
  • es6 写法(箭头函数)
let add = (a, b) => {
return a + b
}

注意:

  • 箭头函数作用于执行代码,这时使用{}
let add = (a, b) => {a + b}
  • 当执行的代码语句只有一个逻辑表达式,这时可以省略{}
let add = (a, b) => a + b
  • 箭头函数用于返回对象时,这时使用()
let add = (a, b) => (c)
  • 箭头函数的参数当只有一个参数时,这时可以省略参数的()
let add = a => alert(a)

打印计算结果,没有返回值

  • 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)

函数执行多条逻辑语句

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

创建对象区别

es5和es6创建对象方式的不同

  • es5
let App = React.createClass({
render: function(){
return (
<View>
<Text>这是es5创建的对象</Text>
</View>
)
}
})
  • es6
class App extends React.Component{
render() {
return (
<View>
<Text>这是es6创建的对象</Text>
</View>
)
}
}
注意:
  • render函数内可以返回视图组件,也可以返回其他的对象
  • 如果return函数中如果返回视图组件,则视图组件一定要使用()包裹起来
  • ()中只能有一个顶级视图标签

这种写法就属于()中有2个顶级标签, 这种会语法报错

let App = React.createClass({
render: function(){
return (
<Text>这是es5创建的对象</Text>
<Text>这是es5创建的对象</Text>
)
}
})

导入导出模块方式区别

导出方式

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

当只导出一个模块时,可以直接使用下面的写法

export default class App extents Component {}

注意:

下面的两种导出方式,导入模块时,写法不一样

  • 方式1
// 导出
export default App


// 导入
import App from './App'
  • 方式2
// 导出
export {App}


// 导入
import {App} from './App'

导入方式

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

注意:

当es5和es6的导入导出方式混用时,切记:当使用es6导出模块,使用es5导入模块,这时程序会报错

设置默认的导入导出模块

  • es6 设置默认导出的内容
export default function dinner(fruit, dessert){
console.log(`${fruit}+${dessert}`)
}

或者

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

注意:

当需要导出一个js文件中的全部模块时,使用 * as xxx 语法

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


// 导出全部模块
export {fruit, dessert}

// 导入全部模块
import * as chef from './xxx'

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

导入导出模块重命名

导出和导入模块时,可以重命名模块的名字

  • 导出重命名
let fruit = '苹果'
let dessert = '面包' function dinner( fruit, dessert){
console.log(`${fruit}+${dessert}`)
} // 导出模块dinner函数的名字重命名为supper
export {dinner as supper} // 导入supper模块
import {supper} from './App'
  • 导入重命名
let fruit = '苹果'
let dessert = '面包' function dinner( fruit, dessert){
console.log(`${fruit}+${dessert}`)
} // 导出模块dinner函数
export {dinner} // 导入dinner模块,并重命名为supper
import {dinner as supper} from './App'

ES5与ES6常用语法教程之 ①函数写法、创建对象、导入导出模块方式的更多相关文章

  1. ES5与ES6常用语法教程之 ②解构语法糖、声明变量异同

    js常用语法系列教程如下 es5与es6常用语法教程(1) es5与es6常用语法教程(2) es5与es6常用语法教程(3) es5与es6常用语法教程(4) es5与es6常用语法教程(5) es ...

  2. ES5与ES6常用语法教程之 ③模板字符串、判断字符串是否包含其它字符串

    这部分教程我们主要讲解以下几个常用语法 模板字符串 带标签的模板字符串 判断字符串中是否包含其他字符串 给函数设置默认值 模板字符串 老式的拼接字符串方法 let dessert = '

  3. ES5与ES6常用语法教程之 ④展开运算符...在数组和对象中的作用

    展开操作符(spread) 展开运算符(spread operator)允许一个表达式在某处展开.展开运算符在多个参数(用于函数调用)或多个元素(用于数组字面量)或者多个变量(用于解构赋值)的地方可以 ...

  4. ES6常用语法

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...

  5. ES6常用语法简介import export

    ES6常用语法简介import export let与var用法区别 //var var a = []; for (var i = 0; i < 10; i++) { a[i] = functi ...

  6. vue学习(一)ES6常用语法

    1 ES6常用语法 1.1 变量提升 例① # 变量提升 <div id="app"> </div> <script> console.log( ...

  7. Typora+markdown 最常用语法教程

    Typora+markdown 最常用语法教程(by 程序员宝藏) Typora+markdown 最常用语法教程(by 程序员宝藏) 请先配置推荐配置(文件->偏好设置): 文章目录 Typo ...

  8. JAE京东云引擎Git上传管理代码教程和京东云数据库导入导出管理

    文章目录 Git管理准备工作 Git工具上传代码 发布代码装程序 mywebsql管理 京东云引擎小结   JAE京东云引擎是京东推出的支持Java.Ruby.Python.PHP.Node.js多语 ...

  9. ES6 常用语法知识汇总

    ES6模块化如何使用,开发环境如何打包? 1.模块化的基本语法 /* export 语法 */ // 默认导出 export default { a: '我是默认导出的', } // 单独导出 exp ...

随机推荐

  1. asp.net操纵Oracle存储过程

    在bloginfo数据库中,利用用户名 system 密码 scy251147 选择超级管理员登陆  创建如下存储过程:  1 /*存储过程*/ 2 create or replace procedu ...

  2. k8s部署ingress-nginx

    ingress-nginx的部署方式有多种,本文介绍nodeport方式和hostnetwork方式: 一.nodeport方式 1.下载mandatory.yaml文件:https://raw.gi ...

  3. 题解 【SCOI2015】小凸玩矩阵

    题面 解析 这题其实也是网络流建图.. 首先,转换下思路, 求第k大的数的最小值, 其实就是求一个最小的值, 使选取的点中能有(n-k+1)个的值比它小. 因此,可以采用二分答案, 每次判断一个值, ...

  4. Monkey初步使用

    版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 允许有条件转载,转载请附带底部二维码. 一.什么是Monkey Monkey是Android自身提供的,可以通 ...

  5. 在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib 及一些问题

    一.准备工作: 1.下载OpenCV安装包:https://github.com/opencv/opencv 安装过程实际上就是解压过程,安装完成后得到(这里修改了文件名): 2.下载opencv_c ...

  6. fflush函数

    /*** flush.c ***/ #include<stdio.h> #include<string.h> #include<stdlib.h> int main ...

  7. 2017多校联合训练2—HDU6054--Is Derek lying?(思维题)

    Is Derek lying? Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  8. template模板循环嵌套循环

    template嵌套循环写法:在第一次循环里面需要循环的地方再写个循环,把要循环的数据对象改为第一层的循环对象别名 //template模板循环嵌套循环 <script id="ban ...

  9. JIRA备份,数据迁移以及小问题

    Jira的备份(切记将许可证号备份) Jira默认会打开自动备份的功能,备份路径为/var/atlassian/application-data/jira/export 管理员账号登录Jira,点击右 ...

  10. 小程序web-view利用url给内嵌的网页传值

    这个方法跟网页上的一样,直接通过截取url中传过来的参数来取值 <web-view src="https://www.baidu.com/test.html?url=http://ww ...