- 匿名函数
没有名称的函数
function(){
}
(1) 创建函数
函数声明
function fn(){ }
函数表达式
var fun=function(){ }
变量名称就是函数名称
调用fun()
函数名称() 和 函数名称
函数名称()表示函数的调用,例如fn() fun()
函数表达式和函数声明区别
函数声明创建的函数整体会提升,可以先调用在创建
函数表达式创建的函数只存在变量的提升,必须先创建在调用
函数名称 就是一个变量,变量中保存了一个函数
(2) 匿名函数自调用------解决全局污染
全局污染 : 全局变量的出现所造成的
解决方法 : 尽量避免使用全局变量,转为局部变量
( function (a) {
//函数作用域
/放置每块功能代码/
} )
(1); //自调用
(3) 回调函数
将一个函数名称或者匿名函数以实参的形式传递
为了控制指定函数的调用
function ran(madai){
console.log(‘第一棒开始跑…’);
console.log(‘第一棒结束,准备交接棒’);
//madai=dong;
//函数dong已经放入到了形参madai中 如果调用dong,只需要调用madai
madai();//函数dong已经放进xingcanmadai中,调用dong只需调用madai
}
function dong(){
console.log(‘接到了第一棒,开始跑第二棒’);
console.log(‘到达终点’);
}
//把dong函数以实参的形式传递,在这个位置dong就叫回调函数
ran(dong);
//创建一个函数xin负责跑第二棒
function xin(){
console.log(‘第二棒新人’);
}
ran(xin);
//ran调用,抱着陌生人(匿名函数)
ran( function(){
console.log(‘陌生人跑远了’);
} );
2. 全局函数
Number() / parseInt() /parseFloat()
isNaN() 检测一个值是否为NaN , 先隐式转换为数值,然后检测
是-true 不是-false
isFinite() 检测一个值是否为有限值
是-true 不是-false
0做除数才会出现无限值 Infinity
eval() 执行字符串中的表达式
3. 对象
属于是引用类型的数据
对象是一组属性和方法合集
(1) JS中的对象
自定义对象,用户所创建的对象
内置对象,JS提供的对象
宿主对象,根据不同的执行环境划分
(2) 创建自定义对象
对象字面量
内置构造函数
自定义构造函数
(3) 使用对象字面量创建对象
使用大括号{}创建空对象,每个属性包含有属性名和属性值,之间用冒号隔开,多组属性之间用逗号隔开
{属性名1:属性值,属性名2:属性值}
(4) 访问对象中的属性
对象.属性名
对象[‘属性名’]
如果属性名不存在,则返回undefined
如果属性名中含有特殊字符只能使用中括号形式
(5) 使用内置构造函数创建对象
new Object() 创建一个空对象
需要单独的添加每一个属性
(6) 遍历属性
循环访问对象中的每一个属性
for(var k in 对象){
k代表每一个属性值
对象[k] 代表每一个属性名对应的属性值
}