开课吧前端1期.阶段2:ES6详解-1 let const 函数 箭头函数

1、变量-let和const

  • 首先思考下,为什么要出ES6 ?  
    • 任何技术都有缺陷,刚开始觉得可以,过几年看性能不如C语言,搞怪不如Python,说白了就是语言必然有迭代过程。
    • 语言总有自己的问题
  • var 变量存在的问题 ?    
    • 1、可以重复声明  (在别的语言无法想象)

      •  

    • 2、无法限制修改

      • 程序里面总有一些东西是不变的,比如常量:PI=3.1415926,这辈子都不会变,最多随着计算机增强算到最后百千万位
      • 很多语言里面都有常量的概念,而JS没有,至少他的的var不是一个常量
        • 为什么Java是全世界最流行的语言,没有之一?
          • 因为它非常的严谨,死板,越是容易简单的语言,实际上没法去开发大型的项目,反过来可能很难受
          • Java刚开始学习可能要死要活的,掌握之后,开发大型项目,得心应手
    • 3、没有块级作用域【if,for出去了就使用不了】

      • where变量的第3个问题  
        • {

              //这个就是块

          }

           

          //常见的

          if(){

          }

          for ( ){

          }

          //里面定义的变量出去了,就用不了

 

 

 

 

 

 

 

 

            

 

 

1.1、ES6出现了新的两种定义变量方式

  1.  let  :不能重复声明,变量-可以修改,块级作用域
  2. const :不能重复声明,常量-不可修改,块级作用域

 

 

 

 

1.2、块级作用域的 现实理解

 

 

 

 

块级作用域的好处: 现在开发都是大型项目,都是合作开发,如果A开发和B开发使用同一个变量名冲突了,查找起来就很麻烦,如果有域的作用,同名了也只在局部起作用,出去了就没了。 

 

2、函数-箭头函数

  任何编程语言来说,函数是最重要的一个组成部分,重用是最重要的提现,不然都要一行行写。

  ES6 函数也有变化,其中箭头函数

标准函数:
  function 名字(){}

es6箭头函数
()=>{
//箭头名字也就这么来的
}

 学习箭头函数前记住2句话:

    1.如果只有一个参数,() 圆括号可以省略 
    2.如果只有一个return,{}  花括号可以省略
  这个函数和我们以前接触的函数没有本质的区别,更多的是一种写法上的变化
 function show(){}   写过来就等于   let show()=>{}  //说白了就是把function 给省略了
function () 等于 ()=>{} //这种就是箭头函数,一点也不神秘

window.onload=function(){alert('a')}
//写成,写法上的变化没区别
window.onload=()=>{ alert('a') }

 

let show=function(){alert('abc')}
//写成
let show=()=>{alert('abc')}

//写法上的意义:

  1、方便


//箭头函数-传参   let show=function(a,b){alert(a+b)} //写成   let show=(a,b)=>{alert(a+b)}

//稍微有点价值的举例 , 数组排序

    let arr=[12,5,8,99,33,14,26]
    arr.sort(function(n1,n2){return n1-n2})
    //写成
      arr.sort((n1,n2)=>{return n1-n2})
      alert(arr)

 

---------记住的点:

1.如果只有一个参数,()  圆括号可以省略

  let show=(a)=>{return a*2}
  let show=a=>{return a*2}   //只允许1个参数,多了不行
  alert(show(12))


2.如果只有一个return,{}  话括号可以省略 ,熟悉的人知道,这抄的Python
  let show=a=> a*2   //花括弧return一曲省略
  alert(show(12))

 

 

  • 总结,省略方法:
    • ()只有一个参数
    • { } 只有一个return      

 

  • 箭头函数用在哪?
    • 可以完全不用,就是一个简写
    • 作为一个基础知识点,但是数组会用的比较多 

 

3、函数-参数

ES6里面对函数进行了很多的扩展,主要是对函数的参数有所改变,主要有2点

  • 函数的参数 1.参数扩展,以及展开 2.默认参数

3.1、参数的展开

function show(a,b){
    alert(a);
	alert(b);
} 
show(12,15,12,15,8,9,20); //12,15我是能够接收到的,那么其他的呢
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 ---剩余参数,前面2个放a,b参数,后面的放到args数组
function show(a,b,...args){
    alert(a);
	alert(b);
    alert(args);
}
show(12,15,8,9,20); //剩余参数
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 参数扩展-注意事项 

  1、收集剩余的参数,前面有几个接收几个,后面剩余的数组全要      

      function show(a,b,...args){}     

        *Rest Parameter 必须是最后一个

    
    2、还能用于,展开数组
      //展开后的效果,跟直接把数组的内容写在这儿一样
        let arr=[1,2,3]
        function show(a,b,c){alert(a);alert(b);alert(c)}
        show(...arr); //等同于show(1,2,3), 就是把arr数组里面东西全部拿出来一样
      //
      let arr1=[1,2,3]
      let arr2=[4,5,6]
     let arr3=[...arr1,...arr2]
alert(arr3) //输出:1,2,3,4,5,6 不奇怪
    //展开后的效果,跟直接把数组内容写在这,let arr3=[1,2,3,4,5,6]

    

  // 两者结合一起用 

     function show(...args){fn(...args)}; //收集参数,然后展开给我的fn function fn(a,b){alert(a+b)};
        show(12,5) //输出17

3.2、默认参数 
	function show(a,b=5,c=12){console.log(a,b,c)} //你给我我就按你的走,没有走默认
	show(99); //输出 99,5,12
show(99,1,2) //输出 99,1,2

 

posted @ 2023-09-02 17:24  兔兔福  阅读(8)  评论(0编辑  收藏  举报