在js中熟悉了通过var一个变量来定义函数,是曾经ecma5时代的产物,语法
的严谨性以及工程性,在一些学过c、java的同学看来也太随意了吧。所以咧做出了如下的几点的改进。(当然也全面不支持低版本浏览器~~~)
1.变量
例如定义一个变量,可以重复定义、没有块级作用域、没法限制修改,等为人所诟病。
而现如今通过:
let a='hello' 不能定义、有块级作用域、变量
const b='world' 不能重复定义、有块级作用域、常量
2.函数
总感觉有点像php的语法有木有?
a.箭头函数(简写)
oBtn.onclick=()=>{
alert(1);
}
#.如果只有一个参数(2个不行,没有也不行),()可以省略
oBtn.onclick=a=>{
alert(a);
}
##.如果只有一条语句并且是return,那么{}可以不写
let arr=[2,31,52,1];
arr.sort((n1,n2)=>n1-n2);
b.Rest Parameter(参数扩展)
传递参数大于接收参数,那么其余多出的参数会放到args数组中。
function show(a,b,c,...args){
alert(a+','+b+','+'c');
alert(args[0]);
}
show(1,2,3,4,5,6,6,7);
3.Array 数组
map 映射:把一组元素的每一个都一一对应转换成另一个。返回一个数组,通过arr2来接收。
let arr=[33,44,55,66,77,56];
let arr2=arr.map(function(item){
if(item<60){
return '不及格';
}else{
return '及格';
}
})
alert(arr2); //得到的结果是不及格、不及格、不及格、及格、及格、不及格、
当然也可以使用符合ecma6的规范来写会更加装逼不信你看~
let arr=[33,44,55,66,77,56];
let arr2=arr.map(item=>item<60?'不及格':'及格');
得到的结果是一样滴...不明觉厉吧,如果看不懂就去看上面的箭头函数。
reduce 汇总:汇总成一个东西,传递三个参数,最后求出平均值有点难理解。
第一个参数,是一个每次累加存值的池子,index是下表进行判断。
var arr=[33,45,66,11];
var result=arr.reduce((tmp_result,item,index)=>{
if(index<arr.length-1){
return tmp_result+item;
}else{
return (tmp_result+item)/arr.length;
}
});
alert(result);
### filter 过滤,我觉得就是一个条件判断的小方法
var arr=[33,44,55,66,77];
let arr2=arr.filter(item=>item>55); //返回item大于55的数组
#### foreach 遍历、循环。
4.String
a.两个小方法
startsWith,从前往后查找
endWith,从后往前找
var url='http://www.xxxdu.com';
alert(url.startsWith('http')); //返回值是布尔值,找到了就是true
b.拼接字符串,简直是手残党的福音,let me show!
曾经呢我们是这样子来做的,’hello'+变量+‘wolrd',心好累
现如今呢,我们只需要
let a='abc';
let b=`deg${a}hhd`; //注意b所使用的反单引号使用的是esc下面的按键
5.json
如果json对象中的,名字和值对的名字都一样的话,就留一个就可以了
let a=1;
let b=2;
let c=3;
let json={a,b,c} //相当于 let json={a:a,b:b,c:c};
json中的函数不用加function
let json={
a:1,
b:2,
show(){
alert(this.a+this.b)
}
};
json.show();
好了,今天的笔记就记到这里,酱紫,可以睡了,蟹蟹一下自己。
网友评论