小程序——ECMAScript 6(箭头函数 JSON 数据格式及作用域)

Posted 另一只Cc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序——ECMAScript 6(箭头函数 JSON 数据格式及作用域)相关的知识,希望对你有一定的参考价值。





ECMAScript6 简介


ECMAScript6 是 javascript 语言的下一代标准。

它的目标是使 JavaScript 语言可以用于编写复杂的大型应用程序,成为企业级开发语言。



  • ES6 和 JS 的关系

    ES6 是 JS 的规格(规定的标准、要求或条件),JS 是 ES6 的一种实现(另外的 ECMAScript 语言还有 JScript 和 ActionScript )。



  • ES6 与 ES2015 的关系

    ES6 的第一个版本在2015年6月正式发布,正式名片是《ES2015标准》(简称ES2015)。泛指5.1版本以后的 JavaScript 的下一代标准,涵盖了包括 ES2015、ES2016、ES2017 等。





箭头函数


箭头函数的作用:用于简化回调函数。



  • ES6 允许使用 => (等号加大于号)定义函数

  • 箭头函数使用 ()(圆括号)代表参数部分

  • 当箭头函数代码块多于一条语句时需要用 {} (大括号)括起来,并使用 return 语句返回

下面是一个普通函数

var fn=function(v){

return v;

}


把上面的普通函数用箭头函数表示:

var fn=v=>v;

下面是一个不带参数的函数

var fn=function(){

return"我是不带参数的函数";

}


用箭头函数表示:

var fn=()=>"我是不带参数的函数";

下面是一个有多个参数的函数

var fn=function(x,y){

return x+y;

}


用箭头函数表示:

var fn=(x,y)=>x+y;


  • 如果箭头函数直接返回对象,须在对象外加上括号

var fn=id=>({id:id,name:"json"});




JSON 数据格式


JSON 的概念及语法结构

  • 概念:JSON 读作 jason [ˈdʒeɪsən] / [ˈdʒesən] ,是 JavaScript Object Notation 的缩写,中文翻译为 JavaScript 对象表示法。

  • 特点:它是 JavaScript 语言提供的一种轻量级的数据交换格式,基于文本,它的作用非常类似于 XML 语言,基于“键-值”对。

  • 价值:JSON 可以把复杂的定义对象的方法转换成简单的字符串形式。

示例1:
{"StuName":"李四"} 
等价形式 -> StuName=李四

示例2:
{"StuName":"李四","ClassName":"VIP-1班","Age":26}
数据量增大时,这种格式可读性非常好!


语法结构总结

  1. 基于“key-value”形式

  2. key 与 value 之间用 :(冒号)分割

  3. JSON 语句之间用 , (逗号)分割

示例1(表示多个对象)

[
{"SruName":"李四","ClassName":"VIP-1班","Age":26},

{"SruName":"王五","ClassName":"VIP-2班","Age":25},

{"SruName":"赵六","ClassName":"VIP-3班","Age":28},

{"SruName":"孙七","ClassName":"VIP-4班","Age":24},

]

示例2(单-多个对象组合)

{"SchoolName":"天津第一中学","SchoolAddress":"天津市中心","StudentList":
                           [ {"SruName":"李四","ClassName":"VIP-1班","Age":26},

                            {"SruName":"王五","ClassName":"VIP-2班","Age":25},

                            {"SruName":"赵六","ClassName":"VIP-3班","Age":28},

                            {"SruName":"孙七","ClassName":"VIP-4班","Age":24},]

}

示例3(对象复杂组合)
{
"ScoolNo1": [ {"SruName":"李四","ClassName":"VIP-1班","Age":26},

                           {"SruName":"王五","ClassName":"VIP-2班","Age":25},

                           {"SruName":"赵六","ClassName":"VIP-3班","Age":28},

                           {"SruName":"孙七","ClassName":"VIP-4班","Age":24},]

"ScoolNo2":[{"SruName":"小王","ClassName":"VIP-1班","Age":26},

                           {"SruName":"小张","ClassName":"VIP-2班","Age":25},

                           {"SruName":"小赵","ClassName":"VIP-3班","Age":28},

                           {"SruName":"小孙","ClassName":"VIP-4班","Age":24},]

"ScoolNo3":[{"SruName":"李一","ClassName":"VIP-1班","Age":26},

                           {"SruName":"王二","ClassName":"VIP-2班","Age":25},

                           {"SruName":"赵三","ClassName":"VIP-3班","Age":28},

                           {"SruName":"孙四","ClassName":"VIP-4班","Age":24},]

}




作用域与模块化使用


文件作用域

  • 在 JavaScript 文件中声明的变量和函数只在该文件中有效;不同的文件中可以声明相同名字的变量和函数,不会互相影响。

  • 通过全局函数 getApp() 可以获取全局的应用实例,如果需要全局的数据可以在 App() 中设置,如:

// app.js

App({
     globalData: 1
})

// a.js
// The localValue can only be used in file a.js.

var localValue = 'a'

// Get the app instance.

var app = getApp()

// Get the global data and change it.

app.globalData++

// b.js
// You can redefine localValue in file b.js,without interference with the localValue in a.js.

var localValue = 'b'

// If a.js it run before b.js, now the globalData shoule be 2.

console.log(getApp().globalData)


模块化

  • 将一些公共代码抽离成为一个单独的 JS 文件,作为一个模块

  • 模块只有通过 module.exports 或 exports 才能对外暴露接口

  • 在需要使用这些模块的文件中,使用 require(path) 将公共代码引入

    tip: require 暂时不支持绝对路径


注意:

  • exportsmodule.exports 的一个引用,因此在模块里边随意更改 exports 的指向会造成未知的错误。所以更推荐开发者采用 module.exports 来暴露模块接口,除非你已经清晰知道这两者的关系。

  • 小程序目前不支持直接引入 node_modules , 开发者需要使用到 node_modules 时候建议拷贝出相关的代码到小程序的目录中。


例:



以上是关于小程序——ECMAScript 6(箭头函数 JSON 数据格式及作用域)的主要内容,如果未能解决你的问题,请参考以下文章

ES6箭头函数(节选自《ECMAScript 6 入门》)

八千字入门ECMAScript 6.0(落灰文章~)

浅尝ECMAScript6

ECMAScript 6.0

ES6语法 学习

ECMAscript中的箭头函数