函数
- function:是被设计为执行特定任务的代码块
- 可以实现代码复用,提高开发效率
- 函数是function执行特定任务的代码块
函数的使用
1.声明语法
function 函数名(){
函数体
}
- 命名规范 + 和变量命名基本一样 + 小驼峰命名法 + 前缀应该为动词(can has is get(获取) set(设置) load(加载))
- 调用函数语法 + 函数名()
函数传参
- 声明语法
function 函数名(参数列表){
函数体
}
参数列表:
* 传入数据列表
* 声明这个函数需要传入几个数据
* 多个数据用逗号隔开
* 形参:声明函数时写在函数名右边小括号里面的(形式上的参数)
* 实参:调用函数时写在函数名右边小括号里面的(实际上的参数)
函数返回值
- 语法:return 数据
- 细节: + 在函数体内使用return能将内部的执行结果交给函数外部使用 + return 后面代码不会再被执行,会立即结束当前函数,return后面的数据不要换行写 + return函数可以没有return,这种情况函数默认返回值为undefined
- 实参和形参个数不一致 + 如果形参过多,会自动填上undefined + 如果实现过多,多余的会被忽略
- 两个相同的函数后面的会覆盖前面的函数
- 函数结束用return
函数作用域
- 全局作用域--函数外部或者整个script有效
- 局部作用域--也称函数作用域,函数内部有效
- 全局变量和局部变量
- 访问原则 + 只要是代码就至少有一个作用域 + 写在函数内部的局部作用域 + 访问原则:在能够访问到的情况下,先局部,局部没有在找全局 + 作用域链:采取就近原则的方式来查找变量最终的值
匿名函数
- function(){}
- 函数表达式 + 语法:
let fn=function(){}
+ 调用:fn()
- 立即执行函数 +
(function(){console.log(11)})();
+ 注意:多个立即执行函数要用;
- 逻辑中断 + 逻辑运算符里的短路 - &&:左边为false就短路 - ||:左边为true就短路 - 运算结果:无论是&&或者||,运算结果都是最后被执行的表达式值,一般用在变量赋值 + 转换Boolean型 - "",0,undefined,null,false,NAN转换为布尔值后都是false,其余则为true - 隐式转换 * 有字符串的加法""+1,结果为1 * 减法只能用于数字,它会使空字符串""转换为0 * null经过数字转换之后也会变为0 * undefined经过数字转换之后变为NAN
对象
- 对象是一种数据类型,无序的数据集合
- 可以详细的描述某个事物
- 声明语法
let 对象名={}
--{}是对象字面量 4.
let 对象名={
属性名:属性值,
方法名:函数
}
属性都是成双出现的,包括属性名和值,他们之间用英文:分隔
多个属性之间用英文,分隔
- 对象使用--增删改查 + 查:对象名.属性/对象['属性'] + 改:对象名.属性=新值 + 增:对象名.新属性=新值 + 删:delete 对象名.属性
- 对象中的方法--调用:对象.方法()
遍历对象
let obj={
uname:'zs'
age:19
}
for(const k in obj){
console.log(obj[k])
}
for in语法中的k是一个变量,在循环的过程中依次代表对象的属性名
k是获得对象的属性名,对象名[k]收获得属性值
内置对象
- 内置对象是JS内部提供的对象,包括各种属性和方法给开发者调用
- 内置对象-Math + random:生成0-1之间的随机数(包括0不包括1) + ceil:向上取整 + floor:向下取整 + max:最大值 + min:最小值 + pow:幂运算 + abs:绝对值
- 内置对象-生成任意范围的随机数
- 如何生成N-M之间的随机数
Math.floor(Math.random()*(M-N+1)+N)