欢迎光临散文网 会员登陆 & 注册

JS:ES6,const,箭头函数,解构,...操作符Spread,Rest,for...of循环【诗书画唱】

2021-04-17 10:58 作者:诗书画唱  | 我要投稿

查找关键词:

学习记录


ES6语法完成:

1、给页面中的所有按钮绑定点击事件,当点击这些按钮时弹出“这个页面的第几个按钮”。

2、分别定义无参无返回,有参无返回,无参有返回和有参有返回的箭头函数,并且调用它。

3、定义三个变量snum,name,classroom三个变量,通过解构将这三个变量合并成一个对象。

4、var dog = {n:"旺财",weight:2,color:"黑色"};通过解构取出旺财的所有属性值。

5、定义一个学生对象,包含一个eat方法,通过解构取出这个方法并调用它。

6、定义一个没有参数个数限制的函数,打印出输入的参数个数。


课堂里的知识面覆盖丰富的值得一看的代码例子


const

...操作符:Spread和Rest

箭头函数

...进行的是Spread操作

...进行的是Rest操作

for...of循环


推荐:

想整个对象等等都修改不了,可用“设置访问器的属性”的方法



单词:




学习记录

flex view:actionscript

ES6和JS可以互换


解构:拆分一个普通对象或者数组,将对象的属性或者数组元素赋值给指定的变量



以后常常使用let来定义变量,比较严格点,用var定义变量。容易成为全局变量,全局变量多了,有时会出现问题。




想整个对象等等都修改不了,可用“设置访问器的属性”的方法

箭头函数中有参有返的情况内容比其他情况用得更多。



这个其实也算一种解构

ES6语法完成:

1、给页面中的所有按钮绑定点击事件,当点击这些按钮时弹出“这个页面的第几个按钮”。

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>


window.onload=function(){


var b=document.querySelectorAll('input[type="button"]');

// alert(b[0].value)



for (let i=0;i<b.length;i++) {

b[i].onclick=function(){

alert("这个页面的第"+(i+1)+"个按钮")



}

}



}


</script>

<body>

<input type="button" value="按钮">

<input type="button" value="按钮">

<input type="button" value="按钮">

</body>

</html>



2、分别定义无参无返回,有参无返回,无参有返回和有参有返回的箭头函数,并且调用它。


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>

//--------------

//无参无返回的箭头函数的声明:

let f1 = () => {

console.log('给诗书画唱三连');

};



//无参无返回的箭头函数的调用:

f1();


//--------------


//有参无返回的箭头函数的声明:

let f2 = s => console.log(s + 2+"个硬币给诗书画唱");



//有参无返回的箭头函数的调用:

f2("投了");

//--------------

//无参有返回的箭头函数的声明:

let f3 = () => '点了赞';



//无参有返回的箭头函数的调用:

console.log(f3());


//--------------

//有参有返回的箭头函数的声明:

let f4 = s => s+"三连!谢谢!好的!不用谢!";



//有参有返回的箭头函数的调用:

console.log(f4("给诗书画唱"));

//-------------


</script>

<body>

</body>

</html>


3、定义三个变量snum,name,classroom三个变量,通过解构将这三个变量合并成一个对象。


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>

function heBing(snum,name,classroom) {

            console.log({snum,name,classroom});

            }

  var o= ["学号:666","姓名:诗书画唱","教室:三连教室"];

            heBing(...o);//...进行的是Spread操作

</script>

<body>

</body>

</html>




4、var dog = {n:"旺财",weight:2,color:"黑色"};通过解构取出旺财的所有属性值。

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>

  var dog = {n:"旺财",weight:2,color:"黑色"}


            let {n,weight,color} = dog;

            console.log(n,weight,color);

</script>

<body>

</body>

</html>


5、定义一个学生对象,包含一个eat方法,通过解构取出这个方法并调用它。


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>

var student = {

            name: '诗书画唱',

            age: 20,

            sex: '男',

            eat:function(){

              return "看到这句话说明成功调用eat方法";

           

            }

            };

             let {eat} = student;

            console.log(eat());

</script>

<body>

</body>

</html>




6、定义一个没有参数个数限制的函数,打印出输入的参数个数。

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>

  function f(...o) {

            console.log(o.length);

            }

            f("诗书画唱",'创作的作品',666,"好棒",true);

</script>

<body>

</body>

</html>

课堂里的知识面覆盖丰富的值得一看的代码例子



<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<!-- 引入ES6转码器 -->

<script type="text/javascript" srcc="js/browser.js" ></script>

<script>

//let和const关键字:都是用来声明变量

{

var a = 3;

let b = 4;

//console.log(a,b);

}

//用let关键字声明的变量当出了作用域以后会被自动销毁

//console.log(a,b);//报错


for(let i = 0;i < 5;i ++){

//执行代码

//console.log(i);

}

//console.log(i);//报错


//解决闭包的问题

let arr = [];

for(let i = 0;i < 5;i ++) {

arr[i] = function(){

console.log(i);

}

}

//arr[2]();


//const用来声明变量,一旦使用const声明变量,必须给这个变量赋值

//一旦这个变量被赋值,就再也不能够被修改了

const PI = 3.14;

const TEST = true;

const MSG = 'Hello world';

//PI = 4;//没有办法再次修改一个const变量值

const STU = {name:'Tom',age:18};

STU.name = 'Kite';

STU.age = 20;

STU.sex = '男';

//console.log(STU);


//无参数无返回值的函数

// function fn1(){

// console.log('Hello world');

// }

let fn1 = () => {

console.log('Hello world');

};

fn1();


//有参数没有返回值的函数

// function fn2(a){

// console.log(a + 1);

// }

            //箭头函数只有一个参数时,可以将括号省略掉

let fn2 = a => console.log(a + 1);

fn2(2);


//没有参数有返回值的函数

// function fn3(){

// return 'Kitty';

// }

//如果函数只有一个return语句的话,return关键字可以省略

let fn3 = () => 'Kitty';

console.log(fn3());


//有返回值有参数的函数

// function fn4(num) {

// return num * 2;

// }

let fn4 = num => num * 2;

console.log(fn4(3));


// (function(){

// console.log('Hello world');

// })();

// + function(){

// console.log('Hello world');

// }();


//          function fn5(){

//          return {

//          name: '张三'

//          };

//          }

            //如果箭头函数返回的是一个对象时,那么这个对象必须用()括起来

            let fn5 = () => ({name: '张三'});

            console.log(fn5().name);

            

            //...操作符:Spread和Rest

            function foo(x,y,z) {

            console.log(x + y + z);

            }

            //foo(1,2,3);

            var ay = [1,2,3,4];

            foo(...ay);//...进行的是Spread操作

            

            function bar(...ar) {//...进行的是Rest操作

            console.log(ar);

            }

            bar(true,'test',47);

            

            var stu = {

            sname: '李四',

            sage: 20,

            ssex: '女'

            };

//          let sname = stu.sname;

//          let sage = stu.sage;

//          let ssex = stu.ssex;

            //通过解构的语法来获取属性值

            //被赋值的变量名跟属性名是一致的

            let {sage,ssex,sname} = stu;

            console.log(sname,sage,ssex);

            

            let arr1 = ['mee',true,23,'txt'];

//          let x = arr1[0];

//          let y = arr1[1];

            //通过解构的语法来获取数组的元素

            let [x,y,z,w] = arr1;

            console.log(x,y,z,w);

            

            let pname = '德芙巧克力';

            let price = '8.5';

//          let pro = {};

//          pro.pname = pname;

//          pro.price = price;

            let pro = {

            pname,

            price

            };

            console.log(pro);

            

            //循环方式:for循环,for...in,for...of

            //for...of不能对对象进行循环

            //for...in可以对对象进行循环

            let nums = ['one','two','three','four'];

            Array.prototype.fn = function(){

            console.log('testing...');

            }

//          for(let i = 0;i < nums.length;i ++) {

//          //console.log(nums[i]);

//          }

//          for(let attr in nums) {

//          console.log(attr);

//          }

            //for...of循环中不会出现数组的下标

//          for(let num of nums) {

//          console.log(num);

//          }

            let pros = [{name: '辣条',price:3.5},

            {name: '脆皮',price:3},

            {name: '鸡腿肉',price:18},

            {name: '薯片',price:10}]

//          for(let i = 0;i < pros.length;i ++) {

//          let p = pros[i];

//          console.log(p.name,p.price);

//          }

            for(let p of pros) {

            console.log(p.name,p.price);

            }

</script>

</head>

<body>

</body>

</html>


JS:ES6,const,箭头函数,解构,...操作符Spread,Rest,for...of循环【诗书画唱】的评论 (共 条)

分享到微博请遵守国家法律