匿名函数
一、没有名字的函数
function name() {}
function() {}
二、函数的匿名声明:
var fun = function() {}
fun();
三、元素添加事件:
div.onclick = function() {}
四、定时器:
setInterval (function() {},1);
IIFE 即时调用函数:
声明结束立马执行,执行完毕不能再次被调用
普通函数的数据类型是什么? 单纯的函数类型 也是对象中的引用类型
即时调用函数是由函数降级为表达式产生的
-function() {}()
+function() {}()
(function() {})() 最常用的一种
优点:
变量被封闭,私有保护,不会对外开放,
减少对全局变量的污染,
可以使用window.v = v,手动将变量变量变为全局变量
五、异步同步
1. json (对象)
对象:是一种数据组织形式
var obj = {
name:"李四",
age: 23,
say:function() {
alert("hello");
}
};
var obj = new Object();
1) json: 是一种数据组织文件格式
2) json: 要求其中的键与值(字符串) 必须使用双引号,但是对象的键可以不用引号,
可以用单引号或双引号,值可以使用单引号或双引号
3) json: 的值只能是数字字符串bool数组数组对象,不能是函数,
但是对象的值可以是任何数据类型
对象的增删改查:
var json = {
"name":"李四",
"age":23
}
增:
json.sex = "男";
json["sex"] = "男";
删:
delete.json.sayhello;
delete.json["sayhello"];
改:
json.age++;
json.["age"] = 30
查:
json.name;
json.["name"];
json的嵌套
var json = {
"name":"李四",
"age":23
"arr" {
"k":1
},{
"k":3
}
}
json.obj.age
json["obj"]["age"]
json.arr[0].k
对象的遍历
for in 遍历
for(var k in json) {
k: 每一个键
json[k]:每一个键对应的值
}
对象有几个键值对,就会自动遍历多少次
2. 同步
在代码执行过程中,排着队从上到下依次执行就是同步
在程序中,同步的语句很多,一个语句没有结束前下边的语句是处于等待状态
eg:
alert()
for 循环
……
3. 异步
当程序遇到耗时操作时,主线程不会等待,直接执行后边的语句
常见的异步语句
setInterval
setTimeout
ajax
Node.js
如果有异步语句,就一定是异步操作,没有异步语句,就不是异步操作