let
es6中通过let取代var 不建议在使用var定义变量
var是没有块级作用域的
let有块级作用域
const
用const修饰必须赋值不能修改
对象的增强写法
//一般写法
var name = zs;
var age = 11;
var obj={
name: name,
age : age,
say :function(){
}
}
//增强写法
var name = zs;
var age = 11;
var obj={
name, //会把name当键和name当值
age ,
say(){// 当对象有方法调用时还是通过属性名调用所有可以把:function去掉
}
}
模板字符串
var name = "abc";
var age = 12;
var persion ={
name : name,
age : age
}
正常拼接
var i = "我的名字叫"+persion.name+" 今年"+persion.age+"岁"
模板拼接
var i =`我的名字${persion.name}今年${persion.age}岁`//字符串拼接不用+号连接
var i =`我的名字${persion.name}
今年${persion.age}岁`//模板字符串中的回车 空格会在页面显示
for循环
let arr = [1,2,3,4,5,6];
for(let i in arr){//in 获取数组的索引
alert(i);
}
for(let i of arr){//of 获取数组中的遍历 相当于Java中的增强for循环
alert(i);
}
js高级方法
filter方法
let arr = [1,2,3,4,5,6];
let newArr = arr.filter(function(n){
return true;
});
filter方法会自动对数组进行遍历遍历结果或通过回调函数进行接收
返回结果是boolean类型 true 会把当前值加入一个新数组(最后返回值就是这个新数组) 如果有条件在 return 写
false会直接过滤掉
let arr = [1,2,3,4,5,6];
let newArr = arr.filter(function(n){
return n<3;//过滤出n<3的值 存入数组中
});
map方法
let arr = [1,2,3,4,5,6];
let newArr = arr.map(function(n){
return n *2;
});
map方法会把数组进行遍历通过回调函数进行接收 返回值为当前元素 最后直接返回一个新数组
可以进行对数组中元素的统一操作 比如*2
reduce方法
对数组中的所有内容进行汇总
let newArr = arr.reduce(function(preValue,n){
return preValue + n ;
},0);
第一个参数是回调函数,第二个参数是给回调函数中第一个参数(preValue)设置初始值
preValue接收的是 return 返回的值 n 是遍历到的值
preValue+n就是直接全部值的和(preValue初始为0第二个参数设置)
箭头函数
const a = function(){} 正常模式
const a=(参数列表)=>{} 标准箭头函数
const a= (a,b) => {return a+b;}有参数有返回值
const a = b =>{return b} 当时一个参数是可以省略括号 没有参数得加()
const a = (a,b) => return a+b; 当只有一行返回值是{}省略直接return
Promise
一般情况下是有 异步操作时使用
new Promise((resolve,rejecy)=>{
// resolve解决 rejecy 拒绝 本身也是函数
setTimeout(() => {
//比如ajax 成功 通过resolve() 成功执行在then
resolve()//通过执行resolve方法会执行then中方法的代码 当resolve方法中传入参数 then中()=>{}方法就 要通过参数接收
}, 1000);
//比如ajaxt 失败 通过reject() 执行 catch
reject();
}).then(()=>{
.
.
.
});
简写:
一般情况下是有 异步操作时使用
new Promise((resolve,rejecy)=>{
// resolve解决 rejecy 拒绝 本身也是函数
setTimeout(() => {
//比如ajax 成功 通过resolve() 成功执行在then
return "aaa"//通过直接返回的方式进入到then方法中 还可以通过throw "aa"直接抛出进入 到catch方法中
}, 1000);
}).then((aaa)=>{
console.log(aaa)
.
.
});