一、函数拓展
1.函数参数的默认值
function add(a,b){
return a+b
}
add(1) //NaN
function add(a,b=10){
return a+b
}
add(1) //11
2.参数的解构
function add({name,age}){
console.log(a+b)
}
let obj = {
naem:'terry',
age:12,
job:'IT',
sayName(){
console.log(this.name)
}
}
add(obj)
3.rest参数:将一组值放到一个数组中
function test(...values){
values //[1,2,3,4,5]
}
test(1,2,3,4,5)
function test(...values){
// console.log(values);
values.forEach((item)=>{
console.log(item);
})
}
test(1,2,3,4,5)
4.箭头函数
(a,b)=>{
console.log('我是一个箭头函数' )
}
a=>{
console.log()
}
*箭头函数的this指向(与函数的调用方式有关):指向包含他的外部函数
(1)obj.add() //obj
(2)add() //全局对象 window/global
(3)add().call(obj1,参数列表) //obj1
(3)add().apply(obj1,[参数数组]) //obj1
(4)let obj = new Object() //Object
二、babel
将es6代码转化为es5,仅仅只是代码的转化,模块化不会合并
let arr = [1,2,3]
arr.forEach(()=>{
})
var arr = [1,2,3]
arr.forEach(function(){
})
三、模块化(commonjs) nodejs采用的commonjs标准
可以将每一个js文件或者文件夹当作一个模块
index.html //10行
<script src='./index.js'></script>
index.js 100000000000行
1.导出模块
module
id 唯一标示
filename 路径+文件名
*paths 路径
*exports 对外暴露的接口(最常用的)
module.exports.obj = obj 单个导出
module.exports = { 多个导出,导出列表
obj,
a
}
2.导入模块
let obj = require('./app01.js') //路径
let obj = require('app01') //模块名称
paths