函数的另一种声明方式:匿名函数
在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);