函数的另一种声明方式:匿名函数
在js中,函数也是一个对象,也就是说函数可以使用变量记录。
1.匿名函数的声明格式
// function(参数){函数体}
// 声明一个匿名函数之后,一般都需要使用变量指向它,在后面的代码中可以通过这个变量调用这个函数
2.
对比:在声明之前调用(函数可以,匿名函数不可以)
f1
();
function
f1
(){
console
.
log
(
"f1执行了"
)
}
3.
通过function+name,直接声明的函数,可以在声明之前调用
// 变量+ 匿名函数声明的函数不能提前调用
f2
();
function
f2
(){
console
.
log
(
"f1执行了"
)
}
1. 对象的属性可以是任何类型,所以对象的属性也可以是函数,对象的函数属性(property)成为对象的方法(method)。 通过 自变量创建对象,方法一般都写为匿名函数
2. 通过 对象.方法名() 的格式调用对象的方法.
p1
.
speak
();
3.对象创建之后,还可以添加新的方法
p1
.
walk
=
function
(){
console
.
log
(
"走路"
);
4.对象的方法中可以访问自己的属性,通过 this.属性名访问
// 在一个对象的方法中,this就表示这个对象
console
.
log
(
"是不是坑跳进去试试就知道了"
+
this
.
name
);
5.对象的方法中也可以调用这个对象的其他方法,通过this
this
.
speak
();
1.
js中,number,string,Boolean三种基本数据类型都有自己对应的对象类型
基本数据类型 对应 类
number 对应 Number
string 对应 String
boolean 对应 Boolean
// 只有对象才有属性和方法,基本数据类型没有属性和方法
// 但是在js中却可以使用基本数据类型属性和方法,例如:
// "asd".length;
// "asd".split();
// 因为:
// 在js中,使用基本数据类型调用方法或属性时,js会将这个基本数据类型的数据临时封装成一个对应的对象类型,然后使用这个临时的对象调用方法。
// 这个过程叫自动装箱
var
arr1
= [
5
,
9
,
4
,
3
];
//
1 .push 向数组的最后添加一个元素
arr1
.
push
(
10
);
console
.
log
(
arr1
);
//
2 .pop 从数组最后删除一个元素(他有返回值就是删除的元素,不需要回值就可以不要)
var
n
=
arr1
.
pop
();
console
.
log
(
n
);
//
3 unshift,向数组最前面添加一个元素
arr1
.
unshift
(
99
);
console
.
log
(
arr1
);
//
4 shift 从数组前端边删除一个元素。返回值就是删除的元素。
var
n2
=
arr1
.
pop
();
console
.
log
(
n2
);
//
数组的push和pop可以形成一对栈操作
// unshift和shift也是一对栈(类似瓶子,先进后出)操作
/
/ push和shift可以形成一对 队列(类似站队,先进先出)操作
// unshift和shift也是一对 队列操作
// -------------------------------------------------------
var
arr2
= [
1
,
2
,
3
,
5
,
6
];
//1
.splice方法,用于删除或插入元素,第一个参数表示从第几个元素开始删,第二个参数表示删几个,从第三个参数开始表示删除之后替换的新元素
arr2.splice(3);
// 插入4
arr2
.
splice
(
3
,
0
,
4
);
arr2
.
splice
(
3
,
0
,
4
,
5
,
6
,
7
);
// 删除
//arr2.splice(2,1);
console
.
log
(
arr2
);
// ----------------------------------------------------
var
arr3
= [
1
,
2
,
3
,
4
,
5
,
6
,
7
];
//
2 .slice数组截取,第一个参数表示从哪个位置开始截(含),第二个参数表示截取到哪个位置(不含)。
var
res1
=
arr3
.
slice
(
2
,
5
);
console
.
log
(
res1
);
// ----------------------------------------------------
var
arr4
= [
54
,
8
,
9
,
4
,
63
,
4
,
7
];
//3
.indexOf 返回某个元素首次在数组中出现的位置,若没有返回-1
console
.
log
(
arr4
.
indexOf
(
4
));
//有的话返回位置,没有返回-1
// -------------------------------------------------------
var
arr5
= [
1
,
2
,
3
,
4
,
5
];
//4 .reverse 数组顺序取反
var
res2
=
arr5
.
reverse
();
console
.
log
(
res2
);
// ---------------------------------------------------
var
arr6
= [
14
,
3
,
5
,
7
,
9
];
//5
.join 将数组中的元素按照顺序拼接成一个字符串,可以通过参数指定分隔符,如果不指定就默认为逗号
var
str1
=
arr6
.
join
();
//若是空格,翻译成,若逗号,没有分隔符,若双引号转换成数组
console
.
log
(
str1
);
// -----------------------------------------------------
var
str2
=
"abcdefg"
;
//6
字符串转成数组(先换成数组,再反取,再拼接成字符串)
var
res4
=
str2
.
split
(
""
).
reverse
().
join
(
""
);
// ----------------------------------------------------
//7
.concat 拼接数组
var
arr7
= [
1
,
2
];
var
arr8
= [
3
,
4
];
var
arr9
=
arr7
.
concat
(
arr8
);
console
.
log
(
arr9
);