JSreTAKE04(es6新加的数据标准,感觉挺重要的!!学学学!)

这几天一直没啥子状态,感觉要学习的太多了,ajax,jq,node,vue…最后还是选择了继续加强js基础,es6新加的各种npPLUS属性和方法。笔记都在代码块里了
把写日记的习惯给续上吧,不然感觉时间过得太虚了,就算每天流水感觉都比不写强。
好了,不多抱怨了。
上代码,少话

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // const a=100;    //声明一个常量(还是有块级作用域...)
        for (var i = 0; i < 3; i++) {
            continue;
        }
        console.log(i); //会打印出3
        for (let j = 0; j < 3; j++) {
            continue;   //let定义变量只对块作用域有效(同C)
        }
        // console.log(j);   会报错,
        var temp = 123;
        if (true) {
            // console.log(temp);   //这样会报错(未定义错误),暂时性死区
            let temp = 'aaa';
            console.log(temp);
        }   //暂时性死区,同名不受外界干扰也不干扰外界
        console.log(temp);

        const a = 100;    //声明一个常量(还是有块级作用域...),
        //重点在于不可以被反复声明(内存地址固定),值大部分情况不可以被改变,而且在初始化时候就得赋值
        if (true) {
            const a = 10;
            if (true) {
                const a = 20;
                console.log(a);
            }
            console.log(a);
        }
        console.log(a);
        ar1 = [10, 20];
        ar1[0] = 'aaa';
        console.log(ar1);   //这种情况可以被改变(改变数组里面的值)
        // ar1=[1,2];       //这样就不行了(重新赋值会改变ar1的地址)

        //接下来是数组解构:把数组的值提取出来赋值给变量
        var ar2 = [1, 2, 3];
        var [a1, b1, c1, d1] = ar2;
        console.log(a1, b1, c1, d1, 'aa');  //没有的为undefined

        //接下来是对象解构:把对象的值按照一定顺序赋值给变量
        var person1 = {
            name: 'my',
            age: 19
        }
        let { name: name1, age: age1 } = person1;  //名字要一样(?)前变量名匹配属性!
        console.log(name1, age1);    //实际的变量名,赋值对象属性于任意变量名的变量


        //接下来是箭头函数(用于简化函数定义语法)
        //  var fun=()=>{}; //通常把箭头函数赋值给一个变量,变量名字就是函数名字
        var fun1 = () => {
            console.log('吾乃箭头函数是也');
        };           //箭头函数的创建
        fun1();     //箭头函数的调用

        var fun2 = (num1, num2) => num1 + num2; //如果箭头函数只有一句而且是返回值,可以不用大括号
        console.log(fun2(1, 2));
        var fun3 = num1 => num1 + 3;         //如果箭头函数形参只有一个,可以不用小括号
        console.log(fun3(3));
        //箭头函数中没有this,用this指的是上下文的this

        var person2={name:'Eille'};
        var fun4=function(){
            console.log(this);
            return ()=>{
                console.log(this);      //返回的是父函数(?)的this
            }      //更具体的说,是箭头函数返回被定义的变量、区域的this,在全局下是undefined
        }
        var val=fun4.call(person2);
        val();
        var aaa=3154;
        var person3={
            age:11,
            hi:()=>{console.log(this.age);},//全局下没有定义,为undefined(不是对象下的!)

            say:()=>{console.log(this.aaa);}
        };
        person3.hi();
        person3.say();      //全局下定义了就是定义的值   输出结果3154

        //接下来是剩余参数函数:允许把不定项的参数传入函数
        var fun5=(...args)=>{   //剩余参数函数
            //传入的值会被依次转为数组[1,2,3,....]重要的!!!
            let sum1=0;
            args.forEach((items)=>{     //对数组的每个值进行操作
                sum1+=items;
            })
            return sum1;    //返回值
        }
        console.log(fun5(1,2,3));

        //剩余函数和解构搭配使用!!都是重点啊QAQ
        var str1=[1,2,3,4];
        var [a2,...b2]=str1;
        console.log(a2,b2);     //a2的值是1    b2的值是[2,3,4] 数组

        //接下来是数组扩展运算符方法
        var arr4=[1,2,3,4];
        //请一定注意!!!!!!!!!!...arr4会把原数组转成1,2,3,4这样的参数序列
        //而在log打印时,会自动把,转成‘ ’而表现出 一个类似字符串的东西
        //接下来来试试
        console.log(...arr4);   //结果是1 2 3 4 (参数序列转成)
        //实际上:上相等于下X_X
        console.log(1,2,3,4);   //结果同上,都是1 2 3 4证明了...arr4是一个(参数序列)!!!!!
        //这里的很多地方都会用到,,很是重要啊啊啊啊啊

        var arr5=['a','b','c','d'];
        // ...arr5  //实际上是转成了 'a','b','c','d'

        //接下来是扩展语法的用法:合并数组
        var arr6=[1,2,3,4];
        var arr7=['a','b','c','d'];
        var arr8=[...arr6,...arr7]; //达拉~合并了!...比想象的要简单
        console.log(arr8);
        arr6.push(...arr7);       //第二种合并的方法,经典push方法
        console.log(arr6);
        var arr9=[];
        arr9.push(1,2,3);       //push也可以这么使用
    </script>
</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值