袁磊老师的课,ES6(一)

老师说:这个部分,应该是在这个阶段,最有市场价值的部分。
没有ES6,就学各种框架,可能会越学越困难

  • ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
{let a  = 10; var b = 1}
//a 只在括号内有效
  • const声明一个只读的常量。一旦声明,常量的值就不能改变。
const PI = 3.14.5
  • 模板字符串
const name = 'lux'
concle.log(`hello${name}`)
//在反引号里面写内容,就可以不用写反斜杠来连接多行代码了。
//多行文本:反引号·
  • 解构赋值:自动解析数组或对象中的值。比如若一个函数要返回多个值,常规的做法是返回一个对象,将每个值作为这个对象的属性返回。但在ES6中,利用解构这一特性,可以直接返回一个数组,然后数组中的值会被解析到对应接受该值的变量中。
return[1,2];

var[x,y] = getVal()
//这里面,x就是1,y就是2;
let{foo, bar}={foo:"yuan", bar:"lei"};
[foo, bar] = [bar, foo]  //交换两个变量的值,不需要第三个变量了。
const[a,b,d,e] = "yuanlei"
//a对应后边字符串的y, b对应u,d对应a,e对应n
let{foo:baz} ={foo:'aaa', bar:'bbb'};
//这里面,前面的foo和bar和后面的foo和bar一定是一一对应的,不能改变名字。
//

例子:
注意,let和const的作用域都是在括号内!在外面打印,不能输出哦


<body>
    <script>
        {
            let a = 10;
            const b = 20;
            var c = 30;

        }
        // console.log(a);
        //a不能输出
        // console.log(b);
        //b也不能输出 
        //a和b都是在块内有用的
        console.log(c);
    </script>
</body>
  • 函数参数默认值
function Point(x = 0, y = 0){this.x = x; this.y = y}
//没有默认值的一定放在前面,有默认值的放在后面,所以,当两个都是0的时候,前面的x是可以被去掉的
  • 箭头函数(其实就是定义函数的一种语法结构)
    更多的用于写回调函数
var f = v => v;//一个参数的箭头函数
//我定义了一个函数叫f, 参数名字叫v,返回值叫v
var f = function(v){return v;};
var f2=()=>{//0个参数书的箭头函数的定义}
var f3 = (n,m) => n*m;//两个函数的箭头函数
var f4 = (n...m)=>{
//rest参数, m是一个不定长度的数组
let sum = 0;
for(v of m){
sum+=v;
}
return n*sum;
}
var  f =() =>5//等同于 var f = function(){return 5};
//如果箭头函数的代码块部分多于一条语句,就要使用大括号把他们括起来,并使用return语句返回。

下面这个练习,自己拿去玩耍


<body>
    <script>
        //一个参数
        var f1 = v => v * v;
        console.log(typeof f1);
        // 输出的是一个f1的类型,类型是:function
        console.log(f1(10));
        // 没有参数
        var f2 = () => Math.floor(Math.random() * 100);
        console.log(f2());
        // 多参数
        var f3 = (n, m) => {
            return n * (m - 1);
        }
        console.log(f3(2, 5));
        var f4 = (n, m = 2) => {
            return n * (m - 1);
        }
        console.log(f4(3))
        // 箭头函数是可以默认参数的
    </script>
</body>

  • 简化回调函数
//正常函数写法
[1,2,3].map(function(x){
return x*x;
}
}
//箭头函数写法
[1,2,3].map(x =>x*x);

箭头函数中的this?


<body>
    <script>
        // 箭头函数的this!!!十分重要!!!
        function foo() {
            // setTimeout是属于window.setTimeout的
            setTimeout(() => {
                console.log(this);
                //请问,这个this输出的是什么??
            }, 100)
        }
        foo();
        // 所有的函数默认都是window的,所有这里调用foo函数,输出的是window
        setTimeout(function () {
            console.log(this)
        }, 100);
        new foo();
        // 用箭头函数输出的是window,不用箭头函数,输出的是这个对象,更具体的说是,这个对象的实例
    </script>
</body>

在这里插入图片描述
好了,今天的笔记就倒这里啦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值