【原生】--ES6 新增的方法
let
区别1:let
定义的变量只能在代码块{}
里面使用,形成一个{}
块级作用域var
作用于函数作用域
区别2:let
不允许重复声明,它是一个封闭空间,解决了i
问题
var a=5 var a=12 //-->a=5 let a=5 let a=12 //-->error
const
const用来定义常量,一旦定义了,后面就不能修改了
箭头函数=>
解构赋值
- 左右两边结构一样
- 右边必须是合法结构(错误例子:{12,5,8})
- 声明和赋值写在一句话中(错误例子:let [a,b]; [a,b]=[12,5];)
//数组 let [a,b,c]=[12,5,101] // a=12,b=5,c=101 //JSON let {a,b,c}={b:5,a:12,c:101} // json跟顺序无关,a=12,b=5,c=101 //混合型,左右结构、顺序一致 let [{a,b},[n1,n2,n3],num,str] = [{a:12,b:5},[12,5,8],8,'EcmaScript'] //a=3,b=8,c is not defined 对数组的解构 var [a,b]=[3,5,8]; //x=V,y=u,z=e 对字符串的结构 var [x,y,z]=Vue; //m=10,n=20 对象的解构,对key进行拆分 var {n,m}={m:10,n:20};
字符串模板
rest参数...
(3个点)
Map
(数据结构)
//例一 let arr=[12,5,8]; let result=arr.map(item=>item*2); alert(result); //例二 let score=[19, 85, 99, 25, 90]; let result=score.map(item=>item>=60?'及格':'不及格'); alert(score); alert(result);
面向对象class
模块化
exprot default
// 导出
import modA from './a.js'
// 引入模块
reduce
化简函数, 从左到右依次处理序列中的元素,并返回结果
array.reduce(func),从0索引开始,依次把元素相加,结果再作为下一个迭代的第一个参数.为了便于理解,我们这样定义一下加法: 加数1+加数2=结果. func有三个参数. function(value1, value2, index){} value1是当前迭代中的加数1,也是上一次迭代的返回值. value2是当前迭代中的加数2, index是当前迭代中加数2的索引. return 函数处理的结果.
// 累加计算 l = [11, 22, 33, 44, 55, 66] l.reduce(function(a,b,c){console.log(`加数1=${a}, 加数1=${b}, 索引=${c}`); return (a+b) + 1000;}); 加数1=11, 加数1=22, 索引=1 加数1=1033, 加数1=33, 索引=2 加数1=2066, 加数1=44, 索引=3 加数1=3110, 加数1=55, 索引=4 加数1=4165, 加数1=66, 索引=5 5231 // 最终的处理结果.
some
判断函数,序列中只要一个都满足判断条件就返回真值.
array.some(func)
func 判断函数,必须返回布尔值,
其中.回调函数func有三个参数.
function(value, index, array){}
value是当前循环的值,
index是当前索引.
array是数组对象本身.
every 判断函数,序列中每一个都满足判断条件就返回真值. array.every(func) func 判断函数,必须返回布尔值, 其中.回调函数func有三个参数. function(value, index, array){} value是当前循环的值, index是当前索引. array是数组对象本身.
1、路在何方?
路在脚下
2、何去何从?
每个人都在探索,未来的方向在何处。如果说某些方向是世人已经公认的,那么就先按照公认的去走吧(ps:站在巨人的肩膀上看世界会清晰)。
如果说方向,当今世人还不清晰准确。那么就大胆往前走吧,对与错并不重要。心中的方向更加重要。