批改状态:合格
老师批语:
js 变量命名规范:字母、数字、下划线 _ 、美元符号$(不能以数字作开头)
变量的特点:
1.可重新声明;
3.可重新赋值;
4.可只声明,无赋值,返回值为undefined;
常量的特点:
1.一旦声明则无法改变的量;
2.声明必须赋值;
3.不可重新赋值;
4.不可重新声明;
例如:
// 1.变量// 只声明:let test1;console.log(test1);//undefined// 声明并初始化:let test2 = 2;console.log(test2);//2// 更新test1 = 1;console.log(test1);//1// 2.常量://const testa ;//会报错const testb =188;console.log(testb);//188testb = 999;//常量的值不可以更新,所以会报错
1.因为js代码是从上到下执行,所以无法在一个变量的声明前面访问这个变量,但是函数可以,也就是函数无论在任何地方都会跑到最前面去,这叫函数的提升,只要声明,就可以自动提升到顶部
2.js中的函数可以重写,在其它语言中不存在
1.匿名函数是直接把一个函数赋值给一个变量/常量
2.匿名函数可以避免函数的提升
3.如果把匿名函数赋值给一个常量,那这个匿名函数将无法被改写
1.箭头函数是用来简化匿名函数的语法糖,将普通函数的“function”关键字和函数名都删掉,并使用“=>”连接参数列表和函数体
基础语法:
(arg1,arg2)=>{function body};
2.如果只有一条语句,可以省略函数的”{}”:
let add = (num1,num2)=>num1+num2;console.log(add(55,33));//88
3.如果只有一个参数可以连()都省了,如果没有参数,则要保留():
let echoName = name => `我的名字是${name}`;console.log(echoName('Jasper'));//我的名字是Jasper
1.全局作用域:只要声明在函数之外的都是全局作用域
例如:
let num1 = 100;function add(){//在函数外声明的变量,可以在函数内使用return num1;};console.log(add());//100
2.函数作用域:函数里面声明的变量叫私有变量,函数内部可以使用,,函数中的私有变量在函数外是无法使用的
例如:
function num(){let a=0;};//在函数中声明的变量在函数外无法使用console.log(a);//a is not defined
3.块作用域:块作用域由 { } 包括,if语句和for语句里面的{ }也属于块作用域,声明的变量只能在块级作用域里访问
注:var不支持块作用域
4.自由变量:即不是函数参数变量也不是私有变量,存在于函数调用上下文中
5.闭包:能够访问自由变量的函数,有时候需要得到函数内的私有变量,那就在函数的内部,再定义一个函数,并返回
例如:这个aaa()里面返回的子函数,就是闭包了
function aaa(){let n = 100;return function () {return n;}}console.log(aaa()());//100
一个函数中的变量相对于本函数是一个私有变量,但是对于引用它的子函数,就是一个自由变量了:
function aaa(){let n = 100;return function () {return n++;}}let bbb = aaa();console.log(bbb());//100console.log(bbb());//101console.log(bbb());//102
基本定义:使用函数为参数或者将函数做为返回值的函数
1. 回调函数:一个被作为参数传递给另一个函数的函数,例:
//这是一个普通的函数function say (value) {alert(value);}//下面是一个回调函数function hdhs(aFun,value){aFun(value);}//运行一下:hdhs(say,'hello js!');//hello js!
2: 偏函数: 简化了声明时的参数声明
例如:
let mult=function(a=1,b=2){return function(c,d){return a*b*c*d;};};let result = mult()(3,4);console.log(result);//24
3:柯里化:把一个多元参数的函数变成多个一元参数的函数
例如:
let mult = function(a){return function(b){return function(c){return function(d){return a*b*c*d;};};};};let result = mult(1)(2)(3)(4);console.log(result);//24
4:纯函数:完全独立于调用上下文,返回值只能受到传入的参数影响
例如:
//这不是一个纯函数function getTimes(){return new Date().getHours();}console.log(getTimes());//返回当前小时
//这就是一个纯纯的函数function div(valueA,valueB){console.log(valueA*valueB);};div(2,3);//6
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号