批改状态:合格
老师批语:
- 书写习惯
1.变量 let;常量const;2.定义变量区分大小写;使用小驼峰(userName);定义函数动词+名词(getName);
// 初始化变量;值可以更新let userName = '黄飞鸿';console.log(userName);// 声明必须初始化,值不可以更新const person = 'hreo';console.log(person);
3.字符串拼接使用+;值匹配==,数据类型与值匹配===
console.log(100+'100');console.log(100=='100');console.log(100==='100');
1.基本数据类型:Number String Boolean undefined null
const person = 'hreo';console.log(typeof person);const a =4;console.log(a, typeof a);2.引用类型:Object Array Function
// 1.数组let arr =[100,'黄飞翔',699];console.log(arr)// 判断数组类型使用isarray是数组true;console.log(Array.isArray(arr))// 2.对象let items = {id:100,name:'手机',};console.log(items);console.table(items);// 判断对象类型使用isarrayof是对象true;console.log(items instanceof Object)// 3.函数function show(){console.log(typeof show)};show()
1.函数提升,会自动提升到顶部,在任何地方调用都是可以的
console.log(getName('陈'));function getName(name){return 'welcome to '+name ;}
2.匿名函数/函数表达式可以防止函数提升
// function sum(a,b) {// return a+b ;// }// console.log(sum(2,3))//上文函数转化 匿名函数,sum移动let在后面let sum = function (a,b) {return a+b ;}console.log(sum(2,3))
3.函数同名会被重写
function getName(name) {return 'welcome to ' + name;}function getName(name) {return '欢迎 ' + name;}console.log(getName('陈'));
4.匿名函数定义为常量不会被重写
const sum = function (a,b) {return a+b ;}console.log(sum(2,3))
5.回调函数(自己不用,给别人调用)
document.addEventListener('click',function(){alert('你好');})
6.偏函数(固定值,先运算,后面的放着后面再处理)
let sum = function (a, b) {return function (c, d) {return a + b + c + d}}let sum1 = sum(1, 2);console.log(sum1(3, 4))
7.柯里化(可以简化调用)
let sum = function (a) {return function (b) {return function(c){return function(d){return a+b+c+d}}}}let sum1 = sum(1)(2)(3)(4);console.log(sum1)
8.纯函数,独立于上下文,返回值只能接受传入的参数影响
function add(a, b) {console.log(a + b);}add(1, 2)
9.箭头函数,不能当构造函数写,与this的上下文绑定
// let sum =function(a,b){// return a+b;// }// console.log(sum(1,2))sum =(a,b)=>{return a+b;}console.log(sum(1,2))
简化
sum =(a,b)=>a+b;console.log(sum(1,2))
10.作用域
作用域// 1.全局作用域,作用所有区域let a = 'nihao';console.log(a);// 2.私有变量let b = function () {// 私有变量bblet bb = 'hello';// 全局变量areturn a + bb;}console.log(b())// 3.块作用域{let A = 1;const B = 'h';var C = 66 ;}// 只有var可以访问,let,const支持块作用域console.log(C)
11.闭包(多重return,自我调用)
function f1() {let a = 1;// a 相对于f1是私有变量,但是相对于返回的匿名函数就是一个自由变量return function () {return a++;};}let f2 = f1();console.log(f2());console.log(f2());console.log(f2());
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号