函数
1、函数的使用:先声明后使用
function sayHi(){
alert('Hi')
}
sayHi()//函数的调用
2、函数的传参
function geySum(num1,num2){//num1,num2是形参
alert(num1+num2)
}
getSum(1,2)//1,2是实参
3、数组的返回值return
经常用一个变量接收函数的返回值用来调用(注意的是return是直接结束程序)如果想要返回多个数值的话,将返回值放进一个数组,然后返回数组即可
function getSum(arr) {
let sum = 0
for (let i = 0; i < arr.length; i++) {
sum += arr[i]
}
return sum
}
let result = getSum([1, 2, 3, 4, 5])
alert(result)
4、作用域
全局作用域:整个script里面、外部script都能用,在任何区域都可以访问和修改
局部作用域:只能当前函数内部访问和修改
注意的是:在函数里面的变量没有声明的话,这个变量就当成一个全局变量
(但是一般不建议这样写)
5、匿名函数
function(){
}
①函数表达式(在API中经常使用)
let fn=function(){
}
注意的是:具名函数的调用可以写到任何的位置,但是函数表达式必须要先声明后调用
②立即执行函数(不用调用就能够执行)(两种写法)
(function(){})()
记忆方法:小括号小括号,function函数写在第一个小括号,第二个小括号实际就是函数的调用
(function(){}())
6、案例(秒数转为时分秒)
let second = +prompt('请输入秒数')
function getTime(second) {
//小时
let h = parseInt(second / 60 / 60 % 24)
//分钟
let m = parseInt(second / 60 % 60)
//秒钟
let s = parseInt(second % 60)
return [h, m, s]
}
let arr = []
arr = getTime(second)
let h = arr[0] > 10 ? arr[0] : '0' + arr[0]
let m = arr[1] > 10 ? arr[1] : '0' + arr[1]
let s = arr[2] > 10 ? arr[2] : '0' + arr[2]
alert(`你当前输入的时间为:${h}时${m}分${s}秒`)
7、逻辑中断
&&只要左边为假就短路
||只要右边为真就短路
console.log(11&&22)//两个都为真,那么就返回最后一个真值
console.log(11 || 22)//两个都为真,则返回第一个真值
对象
1、声明:对象由属性和方法组成
let 对象名={
属性名:属性值,
方法名:函数
}
let obj = {
uname: '小明',
sex: '男',
age: 18,
}
alert(obj.uname)
2、对象操作
①查:(两种方法)
alert(obj.uname)
对象名['属性值']: obj['name']
②改:
obj.age = 20
alert(obj.age)
③增
obj.hobby = '睡觉'
console.log(obj);
④删
delete obj.age
3、对象的方法
let obj = {
uname: '小明',
sex: '男',
age: 18,
sing: function (x, y) {
return x + y
}
}
alert(obj.sing(1, 2))
4、遍历对象(注意的是k就是属性名,obj[k]就是属性值)
for (let k in obj) {
console.log(k);//属性名
console.log(obj[k]);//属性值
}
5、内置对象
Math对象
①Math.ceil()向上取整
②Math.floor()向下取整
③Math.round()四舍五入
④Math.max()求最大值
⑤Math.min()求最小值
⑥Math.abs()求绝对值
⑦Math.random()生成[0,1)范围的随机数(生成能取到0,但是取不到1的数)
1)如果我想要取0-10的数
Math.floor(Math.random()*11)
//随机抽查数组
let arr = ['1', '2', '3']
let random = Math.floor(Math.random() * arr.length)
alert(arr[random])
2)我想要生成n-m之间的随机数
Math.floor(Math.random()*(M-N+1))+N
3)案例
//数字游戏1-10
let random = Math.floor(Math.random() * (10 - 1 + 1)) + 1
let num = 1
while (num) {
let guess = +prompt('请输入数字')
if (random < guess) {
alert('大了')
num++
}
else if (random > guess) {
alert('小了')
num++
}
else {
alert('猜对了')
break
}
if (num == 4) {
alert('三次机会已经没有了哦')
break
}
}