批改状态:合格
老师批语:
// 1.命名函数function getName(username){return 'hello' + username;}console.log(getName('彭于晏'))
// 2.匿名函数// 第一种匿名函数定义方法let getUserName = function(username){return 'hello' + username;}console.log(getUserName('姜文'))// 第二种定义方式:将声明与调用二合一,立即调用函数console.log((function(username){return 'hello' + username;})('姜武'))

// 3.箭头函数,用来简化匿名函数// 3.箭头函数,用来简化匿名函数// 原命名函数function sum(a,b){console.log(`${a+b}`)}// 改成匿名函数let SUM=function(a,b){console.log(a + b)}// 改成箭头函数// 转化方法// 1. 去掉 function// 2. 在参数列表与大括号之间使用 '=>'add=(a,b)=>{console.log(`${a} + ${b}`)}// 如果只有一个参数,可以不用写参数括号add1=a=>{console.log(a + 9)}// 没有参数,括号必须保留add2=()=>{console.log(90 + 1);}sum(1,2);SUM(3,4);add(5,6);add1(0);add2();

// typeof 查看数据类型console.log(100 + 200);console.log(typeof 100, typeof 200);console.log('hello ' + 'world');console.log(typeof('hello ' + 100));//这里会发生隐式转换//注意:null的类型是obj

// 数组// 访问数据元素,必须通过数组的引用(数组名称arr)来访问(arr是一个访问入口)// 数组成员 的索引是从0开始const arr = [1, 'admin', [1, 2, 3], true];console.log(arr);//结果Array(4)console.log(arr[1]);//结果adminconsole.log(arr[2][1]);//结果2console.log(Array.isArray(arr));//true

// 对象let obj = {id: 1,username: 'jack',num: [1, 2, 3],isOk: true,'my email': '498668472@qq.com',};console.log(arr[1]);console.log(obj['username']);// 为了简化,并与数组区别,对象有自己的成员访问符: .console.log(obj.username);console.log(obj['my email']);// 对象字面量obj2 = {id: 1,username: 'jack',num: [1, 2, 3],isOk: true,'my email': '498668472@qq.com',// 将一个函数转为对象的方法,封装到对象中getUser: function() {// 在对象中,使用变量this来引用对象自身return 'id =' + this.id + ', username =' + this.username;},};console.log(obj2.getUser());

// 函数// 函数是对象,也是一个值,可以当成参数传递,也可以当成返回值console.log(typeoffunction() {});function f1(callback) {console.log(typeof callback);console.log(callback());}f1(function() {return 'Hello 猪老师';});// 函数当返回值: 闭包function f2() {// a是 f2的私有变量let a = 1;return function() {// return (a += 1);// 而此时,子函数中的a并不是自己的,是父函数的return a++;};}console.log(f2());const f = f2();// console.log(f);console.log(f());console.log(f());console.log(f());console.log(f());console.log(f());console.log(f());// 函数就是对象,对象就可以添加属性和方法let f3 = function() {};f3.myemail = 'admin@php.cn';console.log(f3.myemail);f3.getEmail = function() {console.log(this.myemail);};f3.getEmail();

结论:闭包找到的是同一地址中父级函数中对应变量最终的值
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号