函数补充
//1.立即执行函数
(function (){console.log("666")})()
//注:多个立即执行函数直接要用";"隔开
//2.闭包
//闭包即外层函数嵌套内层函数,并将内层函数输出
//用处:1.让外部访问到内层变量 2.保留内层函数
//缺点:内部函数无法得到释放,占用内存
function outer(){
let money = 5000
function inner(){
console.log(money)
}
return inner
}
let fn = outer()
fn()
//json对象:把若干个繁杂的属性封装成一个整体
//1.json对象的定义 (键值对的形式 key:value)
//json对象的键一定要带双引号
//多个键值对之间用逗号隔开
let stu={
"a":'b'
"c":function(){
console.log("d")
}
}
//如何读取对象的属性
//1.分量运算符 对象名.属性名
console.log(stu.name)
stu.r()
//2.下标法 对象名[索引的值]
console.log(stu["age"])
//调用方式
stu["age"]()
//添加 对象名.新的属性名=属性值
stu.gender ="M"
//改
stu.name = "wu"
consolr.log(stu)
//json的遍历 for in
for()
//json一般用法
//定时器
//一般应用场景:"该页面将在3s后跳转"等
//定时器会返回一个证整数作为编号
setTimeout()://让某一个函数或者某一段代码在多少毫秒后执行
//使用格式1
setTimeout(func|code,delay)
//使用格式2
setTimeout(() =>{
consolr.log("666")
},2000)//该段函数执行的作用即为2000毫秒(即2秒)后打印"666"
//使用格式3
setTimeout(fn,2000)
setTimeout( 'consolr.log(stu)',2000) //注:若此处使用函数,则需化为字符串形式(加上引号即可,单引号双引号视情况而定)
setTimeout((a,b) =>{
consolr.log(a+b)
},2000,2,5) //该处代码执行即2,5会在2000毫秒后函数执行时,作为参数传递给函数的形参
//处理this问题
//用bind()绑定this的指向
setTimeout(ob.fn.bind(ob),2000)
//通过定时器编号,清除定时器
let timer = setTimeout(ob.fn.bind(ob),2000)
clearTimeout(tim)
//随机数
console.log(Math.random())
//0-10之间的整数
console.log(Math.round(Math.random()*10))
//1-6之间的整数
console.log(Math.random()*5)+1
//获取元素对象
//通过css选择器获取对象
const box = document.querySelector(".box")
console.log(typeof(box))
console.dir(box)
const lis = document.querySelectorAll("ul li")
console.log(document.getElementById("li3")) //通过id查找对象
console.log(document.getElementsByClassName("box")) //通过类名查找对象
console.log(document.getElementsByTagName("1")) //通过标签名查找对象
//元素对象内容
//1.获取元素对象
let box = document.querySelector(".box")
//2.更改
box.innerText = ``
box.innerHTML = ``
//更改元素对象的属性
//对象.属性=值
//1.获取元素
let img = document.querySelector("img")
let inp = document.querySelector("input")
let btn = document.querySelector("button")
//2.更改src属性
img.src = ""
img.title = "你是个好人"
inp.type = "text"
btn.disabled = false//封禁按钮点击