小程序——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 可以把复杂的定义对象的方法转换成简单的字符串形式。
语法结构总结
基于“key-value”形式
key 与 value 之间用 :(冒号)分割
JSON 语句之间用 , (逗号)分割
示例1(表示多个对象)
[{"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-2班","Age":25},
{"SruName":"赵六","ClassName":"VIP-3班","Age":28},
{"SruName":"孙七","ClassName":"VIP-4班","Age":24},]
{"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 暂时不支持绝对路径
注意:
exports
是module.exports
的一个引用,因此在模块里边随意更改exports
的指向会造成未知的错误。所以更推荐开发者采用module.exports
来暴露模块接口,除非你已经清晰知道这两者的关系。小程序目前不支持直接引入
node_modules
, 开发者需要使用到node_modules
时候建议拷贝出相关的代码到小程序的目录中。
例:
以上是关于小程序——ECMAScript 6(箭头函数 JSON 数据格式及作用域)的主要内容,如果未能解决你的问题,请参考以下文章