一、"闭包"函数
1、是一个函数,可以访问另一个函数中的局部变量。
2、作用:
(1)可以在函数的外部访问函数内部的变量
(2)可以让变量的值始终保存在内存中
注意:滥用'闭包'对程序的执行效率会产生很大的影响
3、创建
在一个函数的内部创建另外一个函数。另外一个函数可以访问该函数的局部变量
二、JavaScript的预解析
1、先对var变量和function函数进行解析,然后再执行其他的代码
/*先解析var变量num然后执行console输出最后把10赋给num*/
console.log("num=",num);
var num = 10;
2、function函数的预解析
/*先解析fn函数的定义然后执行console语句*/
console.log("1+2+3+...+100=",fn());
function fn(){
var s = 0;
for(var i=1;i<=100;i++){
s += i;
}
return s;
}
三、对象
1、对象
一切皆为对象,是属性和行为的结合体。在面向对象中把'属性'称为对象的成员(成员变量)把'行为'称为成员方法(成员函数)。
属性:反映的是对象的静态特征
行为:反映对象的动态特征
2、JavaScript中的对象
是一种数据类型,用"{}"表示一个对象,在"{}"中包裹了对象的成员(包括属性和方法)以"key:value"(键-值对)方式存储各成员。"key"是成员名,"value"是成员的值
对成员的访问格式是:
对象名.属性名 或 对象名['属性名']
对象名.方法名([参数]) 或 对象名['方法名']([参数])
3、在JavaScript中可以先声明空对象,然后给对象添加属性和方法
var 对象名 = {}
对象名.属性名 = 值
对象名.方法名 = function([参数]){
方法体语句
}
4、使用new运算符创建对象
(1)Object:是JavaScript中的超级对象,即用户创建的对象都直接或间接的继承了该对象的某些特性。
(2)创建方式
var 对象名 = new Object();
5、利用构造方法创建对象
(1)定义构造方法
function 构造方法名([参数]){
this.属性名 = 值
this.方法名 = function([参数]){
方法体语句;
}
}
构造方法:是一个初始化对象的方法
(2)利用构造方法创建对象
var 对象名 = new 构造方法名([参数]);
(3)注意:
建议构造方法名的首字母大写
this是关键字,代表当前对象
6、使用for...in循环遍历对象的成员
for(var 遍历名 in 对象名){
循环体语句
}
7、使用in运算符判断对象是否存在某个成员
'成员名' in 对象名 -->返回一个boolean型的值,'true'表示存在,'false'表示不存在
四、JavaScript的内置对象:用户可以直接使用的对象
1、Math
包含数学常数属性和数学函数
(1)属性
Math.PI:表示圆周率
(2)方法:
Math.abs(x):返回x的绝对值
Math.pow(x,y):返回x的y次方
Math.sqrt(x):返回x的算术平方根
Math.random():返回伪随机数(0.0~1.0之间)
Math.round(x):返回x四舍五入后的最接近的整数
Math.floor(x):返回小于或等于x的最大整数。
Math.ceil(x):函数返回大于或等于x的最小整数
Math.max():返回参数中的最大值
Math.min():返回参数中的最小值
2、Date对象
使用new Date()创建对象
(1)构造方法:
A、new Date():无参构造,当前的日期时间
B、new Date(y,M,d,h,m,s):带参的构造,参数是年、月、日、时、分、秒
C、new Date(dateString): 参数是日期字符串
注意:月份的整数值,从 0(1月)到 11(12月)
(2)常用方法
A、获取年份: date.getFullYear():获取4位年份
B、getMonth():获取0~11之间的月份
C、getDate():获取日期(一个月中的第几天)
D、getDay():获取星期几(一周中的第几天)
E、getHours():获取小时数
F、getMinutes():获取分钟数
G、getSeconds():获取秒钟数
H、getMilliseconds() :返回指定日期对象的毫秒数
I、getTime():返回1970-1-1 00:00:00到当前时间之间的毫秒数
J、toDateString():将日期转为字符
K、toLocaleDateString():将日期转换为本地日期格式的字符串
3、Array对象
(1)数组类型检测的方法:
instanceof运算符:
isArray()方法:Array.isArray([参数])
(2)数组的遍历
for(var i=0;i<arr.length;i++){
console.log(arr[i])
}
for(var k in arr){
console.log(arr[k])
}
for(var k of arr){
console.log(k)
}
arr.forEach(function(t){
console.log(t)
})
arr.map(function(t){
console.log(t)
})
(3)添加元素
push(参数...):在数组的末尾添加一个或多个元素
unshift(参数...):在数组开头添加一个或多个元素
(4)删除元素
pop():删除数组最后一个元素,若数组为空返回undefined
shift():删除数组的第一个元素,返回数组的第一个元素
(5)排序 :sort()
(6)逆置:reverse()
(7)数组的索引:查找元素在数组中的位置
indexOf([参数]):查找给定值的第一个索引
lastIndexOf([参数]):查找给定值的最后一个索引
(8)数组转换字符
toString():直接转换
join(字符):在转换字符串时,数据之间用给定的字符进行连接