let

es6中通过let取代var 不建议在使用var定义变量

  1. var是没有块级作用域的
  2. let有块级作用域

const

用const修饰必须赋值不能修改

对象的增强写法

  1. //一般写法
  2. var name = zs;
  3. var age = 11;
  4. var obj={
  5. name: name,
  6. age : age,
  7. say :function(){
  8. }
  9. }
  10. //增强写法
  11. var name = zs;
  12. var age = 11;
  13. var obj={
  14. name, //会把name当键和name当值
  15. age ,
  16. say(){// 当对象有方法调用时还是通过属性名调用所有可以把:function去掉
  17. }
  18. }

模板字符串

  1. var name = "abc";
  2. var age = 12;
  3. var persion ={
  4. name : name,
  5. age : age
  6. }
  7. 正常拼接
  8. var i = "我的名字叫"+persion.name+" 今年"+persion.age+"岁"
  9. 模板拼接
  10. var i =`我的名字${persion.name}今年${persion.age}岁`//字符串拼接不用+号连接
  11. var i =`我的名字${persion.name}
  12. 今年${persion.age}岁`//模板字符串中的回车 空格会在页面显示

for循环

  1. let arr = [1,2,3,4,5,6];
  2. for(let i in arr){//in 获取数组的索引
  3. alert(i);
  4. }
  5. for(let i of arr){//of 获取数组中的遍历 相当于Java中的增强for循环
  6. alert(i);
  7. }

js高级方法

filter方法

  1. let arr = [1,2,3,4,5,6];
  2. let newArr = arr.filter(function(n){
  3. return true;
  4. });
  5. filter方法会自动对数组进行遍历遍历结果或通过回调函数进行接收
  6. 返回结果是boolean类型 true 会把当前值加入一个新数组(最后返回值就是这个新数组) 如果有条件在 return
  7. false会直接过滤掉
  8. let arr = [1,2,3,4,5,6];
  9. let newArr = arr.filter(function(n){
  10. return n<3;//过滤出n<3的值 存入数组中
  11. });

map方法

  1. let arr = [1,2,3,4,5,6];
  2. let newArr = arr.map(function(n){
  3. return n *2;
  4. });
  5. map方法会把数组进行遍历通过回调函数进行接收 返回值为当前元素 最后直接返回一个新数组
  6. 可以进行对数组中元素的统一操作 比如*2

reduce方法

  1. 对数组中的所有内容进行汇总
  2. let newArr = arr.reduce(function(preValue,n){
  3. return preValue + n ;
  4. },0);
  5. 第一个参数是回调函数,第二个参数是给回调函数中第一个参数(preValue)设置初始值
  6. preValue接收的是 return 返回的值 n 是遍历到的值
  7. preValue+n就是直接全部值的和(preValue初始为0第二个参数设置)

箭头函数

  1. const a = function(){} 正常模式
  2. const a=(参数列表)=>{} 标准箭头函数
  3. const a= (a,b) => {return a+b;}有参数有返回值
  4. const a = b =>{return b} 当时一个参数是可以省略括号 没有参数得加()
  5. const a = (a,b) => return a+b; 当只有一行返回值是{}省略直接return

Promise

  1. 一般情况下是有 异步操作时使用
  2. new Promise((resolve,rejecy)=>{
  3. // resolve解决 rejecy 拒绝 本身也是函数
  4. setTimeout(() => {
  5. //比如ajax 成功 通过resolve() 成功执行在then
  6. resolve()//通过执行resolve方法会执行then中方法的代码 当resolve方法中传入参数 then中()=>{}方法就 要通过参数接收
  7. }, 1000);
  8. //比如ajaxt 失败 通过reject() 执行 catch
  9. reject();
  10. }).then(()=>{
  11. .
  12. .
  13. .
  14. });
  15. 简写:
  16. 一般情况下是有 异步操作时使用
  17. new Promise((resolve,rejecy)=>{
  18. // resolve解决 rejecy 拒绝 本身也是函数
  19. setTimeout(() => {
  20. //比如ajax 成功 通过resolve() 成功执行在then
  21. return "aaa"//通过直接返回的方式进入到then方法中 还可以通过throw "aa"直接抛出进入 到catch方法中
  22. }, 1000);
  23. }).then((aaa)=>{
  24. console.log(aaa)
  25. .
  26. .
  27. });