开课吧前端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 ( ){
}
//里面定义的变量出去了,就用不了
-
- where变量的第3个问题
-
1.1、ES6出现了新的两种定义变量方式
- let :不能重复声明,变量-可以修改,块级作用域
- 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、方便
1 2 3 4 | < br >//箭头函数-传参 let show=function(a,b){alert(a+b)} //写成 let show=(a,b)=>{alert(a+b)}< br >< br >//稍微有点价值的举例 , 数组排序 |
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、参数的展开
1 2 3 4 5 6 7 8 9 10 | function show(a,b){ alert(a); alert(b); } show(12,15,12,15,8,9,20); //12,15我是能够接收到的,那么其他的呢function show(a,b,...args){ alert(a); alert(b); alert(args); } show(12,15,8,9,20); //剩余参数< br >+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++< br > |
参数扩展-注意事项
1、收集剩余的参数,前面有几个接收几个,后面剩余的数组全要
function show(a,b,...args){}
*Rest Parameter 必须是最后一个
1 2 3 4 5 6 | 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] |
// 两者结合一起用
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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2020-09-02 Redis在高并发情况下可能会存在哪些问题?