昨日忘写,今日补上..
立即执行函数
1.立即执行函数执行场景二:
有多个按钮,因为var没有作用域会导致所有按钮的点击事件都变成最后一个数加一,加上立即执行函数后可解决此问题, 代码如下:
<button class="btn">按钮一</button>
<button class="btn">按钮二</button>
<button class="btn">按钮三</button>
<button class="btn">按钮四</button>
<script>
// 立即执行函数的使用场景二:
var btnlist = document.querySelectorAll(".btn")
for(var i=0;i<btnlist.length;i++){
var btt = btnlist[i];
(function(x){
btt.onclick= function(){
console.log("您点了按钮"+(x+1))
}}
)(i)
}
</script>
2.立即执行函数的另一种写法
正常写法: (function(){})() 写法二: (function(){}())
对象
删除对象内属性的方法:假如有一个对象info内有一属性name,如果想要删除name,则可以使用delete info.name完成
对象可以使用for in循环 例如:
let info = {
name:'哈哈哈',
age:18
}
for(let item in info) {
console.log("key值为"+item+"value值为"+info[item])
}
内存
原始类型(值类型)都在栈内存中,对象类型都在堆内存中 对象类型的内存分布: 假如有如下对象:
let info = {
name:'很适合',
age:18
}
其中{ name:'很适合', age:18 }在堆内存中会生成一个内存地址,对应内存地址放到了栈内存中