JavaScript函数
function,是被设计为执行特定任务的代码块
<script>
function getName(){//注意使用驼峰命名,即第二个单词首字母大写
}
</script>
好处:
函数可以把具有相同或相似逻辑的代码“包裹”起来,通过函数调用执行这些被“包裹”的代码逻辑,这么做的优势是有利于精简代码方便复用。
命名规范:
和变量命名基本一致 尽量小驼峰式命名法 前缀应该为动词 命名建议:常用动词约定
函数调用:
<script>
function getName(){
doccument.write('小明')//函数体
}
getName()//调用一次,输出一次‘小明’,以此类推,调用几次输出几次
</script>
函数体
函数体是函数的构成部分,它负责将相同或相似代码“包裹”起来,直到函数调用时函数体内的代码才会被执行。函数的功能代码都要写在函数体当中。
函数传参
<script>
function getMax(num1,num2){//函数名小括号里面的就是传参,传参数量按要求自定义。
document.write(num1*num2)
}
getMax(1,4)//1,4为实参,实参和传参相对应
//把传参比喻成装实参的盒子,实参装进去了,就执行传参的代码,并输出,有多个实参都一样,都装进去,都执行传参的代码,并输出。
</script>
形参:声明函数时写在函数名右边小括号里的叫形参(形式上的参数) 实参:调用函数时写在函数名右边小括号里的叫实参(实际上的参数) 形参可以理解为是在这个函数内声明的变量(比如 num1 = 10)实参可以理解为是给这个变量赋值 开发中尽量保持形参和实参个数一致 我们曾经使用过的 alert('打印'), parseInt('11'), Number('11') 本质上都是函数调用的传参
return返回值
return返回值相当于
<script>
function getMax(){
if(num1>num2){
document.write(num2)
//用return来写就是:return num2
}else if(num1=num2){
document.write(num2)
//用return来写就是:return num2
}else{
document.write(num1)
//用return来写就是:return num1
}
//return+(要返回(输出)的值)
}
let re = getMax(6,9)//如果用了return返回值,那要调用函数输出,就必须给函数声明一个变量,然后再用三个输出语句输出声明了的变量。缺一不可。
document.write(re)
</script>
对象
对象(object):JavaScript里的一种数据类型,可以理解为是一种无序的数据集合
用来描述某个具体事物
对象包括属性和方法
属性(名词):事物的特征,例如一部手机的特征,颜色、型号、尺寸
方法(动词):事物的行为,例如一部手机可以做的行为,播放视频、播放音乐、玩游戏
对象使用
<script>
//对象声明 let 对象名 = {}
let person = {
name:'周树人',//属性之间逗号隔开
age:23,
sex:'男'
sayHi: function(){//对象方法,一般用匿名函数表达
document.write('hi~~')
}
}
console.log()
</script>
对象输出
<script>
let person = {
naem:'周树人',
age:23,
sex:'男'
sayHi: function(){//对象方法,一般用匿名函数表达
document.write('hi~~')
}
}
console.log(person.name)//第一种输出方式,输出‘周树人’
console.log(person['name'])//第二种输出方式,输出‘周树人’
//中括号里面要用字符串包裹,没有字符串包裹,那么里面的值是变量
person.sayHi()//输出方法,匿名函数,输出‘hi~~’
</script>
对象属性重新赋值
<script>
let person = {
name:'周树人',
}
person.name='王老五'//name属性就变成了‘王老五’
document.write(person.name)//此时,输出为‘王老五’
</script>
对象增加属性
<script>
let person = {
name:'周树人',
}
person.age='23'//增加了age属性,值为‘23’
person.sex='男'//增加了sex属性,值为‘男’
person.move=function(){
document.write('打篮球')
}//增加了move方法,匿名函数值为‘打篮球’
</script>
对象属性删除
<script>
let person = {
name:'周树人',
age:23
}
console.log(person.name)//此时name属性已被删除,输出为‘undefined’,
//输出,对象里面没有的属性,都输出为‘undefined’
</script>
遍历对象
输出对象的所有属性和属性值
k获取的是对象的属性名,对象名[k]是获取属性值
<script>
let person = {
name:'安叔',
age:34,
sayHi:function (){
document.write('hi')
}
}
for (let k in person) {
console.log(k)//打印所有属性名,‘name’,‘age’,'sayHi'
console.log(person[k])//打印所有属性值,‘叔’,‘23’,
//'function (){
// document.write('hi')
// }'
}
</script>
内置对象
JavaScript内部提供的对象,包括各种属性和方法给开发者调用
之前用过的内置对象有:document.write() console.log()
内置对象Math
<script>
Math.random()//生成0-1之间的随机数(包括0不包括1)
Math.ceil(2.1)(向上取整)//输出3,小数点后面有小数就向上加1
Math.floor(2.9)(向下取整)//输出2,小数点后面有小数就向下减一
Math.max(2,5,9)(找最大数)//输出9,逗号隔开
Math.min(3,1,6)(找最小数)//输出1,
Math.pow(幂运算)(2,4)//输出2的4次方,值16
Math.abs(-4)(绝对值)//输出正数4
任意范围随机数
<script>
//生成0~10的随机数
Math.floor(Math.random()*(10+1))//最大值10加1,那么生成随机数就有10,
//生成N~M之间的随机数
Math.floor(Math.random()*(M(最大值)-N(最小值)+1))+N
</script>