1.语言特性
1.const,let关键字
let 作用域中变量声明
if(true){
let a='hollow would!';
}
console.log(a);
//ReferencError:a is not defined
const定义常量 一旦定义后不可修改,如果是引用类型,可改变属性
const MYNAME = 'vivian';
MYNAME = 'tony';
//"CONSTANT" is read-only
const MYNAEM = { foo :'vivian'};
MYNAME.foo = 'tony';
//正常运行
2.函数
·箭头函数
箭头函数是一种更简单的函数声明方式,可以把它看作一种语法糖,,箭头函数永远是匿名。
let add=(a,b)=>{return a+b;}
//当后面是表达式(expression)的时候,还可以简写成
let add = (a,b) =>a+b;
//等同于
let add =function(a,b) {
return a+b;
}
//在回调函数中应用
let numbers =[1,2,3];
let doubleNumbers = number.map((number)=> number *2);
console.log(doubleNumbers);
//[2,4,6]
·this 在箭头函数中的使用
在工作中经常会遇到这样的问题,就是this 在一个对象方法中嵌套函数。在对象方法嵌套函数中,this会指向global对象,被看作js在设计上的一个重大缺陷,可通过箭头函数解决。
let vivian = {
age:1,
grow: function() {
setTimeout(()=>{
console.log(this.age);
},100);
}
}
·函数默认参数
·Rest参数
当一个函数的最后一个参数有“…”这样的前缀,它就会变成一个参数的数组。
function test(... args){
console.log(args);
}
test (1,2,3);
//[1,2,3]
function test2(name,...args){
console.log(args);
}
test2 ('Peter',2,3);
//[2,3]
与arguments区别:1,Rest参数只是没有制定变量名称的参数数组,而arguments是所有参数的集合;2,arguments对象不是一个真正数组,而Rest参数是一个真正的数组,可以使用各种方法,比如 sort,map等。