JS--2.1

这篇博客详细介绍了JavaScript中的函数用法,包括自调用函数、匿名函数和箭头函数,并探讨了数组的各种操作方法,如push、pop、shift、unshift、reverse、sort、splice、slice、concat、toString和join。同时,还讲解了indexOf和lastIndexOf在数组中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数

// 自调用

(function fun (){

console.log(1111);

})();// 记得加分号

// 匿名函数

(function (){

console.log(222);

})()

var a = function(){}

// 箭头函数 ES2015新增的(ES6)

// 1.如果形参只有一个 那小括号可以省略

// 2.如果{}里只有一条语句,大括号可以省略

var f = (a,b) =>{

console.log(a,b);

}

f (1,2)

// 复原

var result = index=>index + 1;

function result(index){

index+1

}

function outer(){

// 函数执行的宿主环境,如果hi是全局,那就是null

console.log(outer.caller)

inner()

console.log();

}

function inner(){

// 函数身上有个caller ,inner在outer里调用,他的宿主环境是outer

console.dir(inner);//outer函数

console.log(arguments.callee);// 函数本身

}

outer()

数组

// 数组(Array)是一个有序集合,里面每一个用逗号隔开的叫元素

// 每一个元素都有自己的位置,叫下标也叫索引(0~n)

// 元素可以是任意类型

[1,2,3][1,"2",{3:4}]

// 数组直接量创建数组

var ary2 = [1,2,3];

// 读取数组的元素,通过下标

console.log(ary2);//拿到3

//数组有一个内置的属性length,属性值存的是数组的元素个数(长度)

for (var i = 0;i<ary2.length;i++){}

// 获取数组的最后一个元素

console.log(ary2.length-1);

// 如果ary[不存在的下标]得到的是undefined

console.log(ary2[5]);

// length不是只读,也是可以修改

varary = [1,2,3];

ary[ary.length]=4//得到[1,2,3,4]

// 循环/遍历/迭代一个数组

// for in

var ary1=[1,2,3];

var ary2=[4,5,6];

for (var i in ary2){

console.log(ary2[i]);

}

// 字符串和数组有点像

var str ="今天 学的东西 有点多";

console.log(str.length);// 得到内容的长度

console.log(str[str.length-1]);// 得到“多”空格得到空字符

数组方法

/*

1.push()

作用:在一个数组的末尾追加元素

参数:你追加的东西

返回值:新数组的长度

是否改变原数组:改变

*/

var oldAry = [1,2,3];

var returnValue = oldAry.push(4);

console.log(oldAry,returnValue);// ['1','2','3','4']

/*

2.pop()

作用:删除末尾的最后一个

参数:没有

返回值:被删除的元素

是否改变原数组:改变

*/

var oldAry = [1,2,'删我'];

var returnValue = oldAry.pop();

console.log(oldAry,returnValue);// [1,2] '删我'

/*

3.shift()

作用:删除数组的第一个

参数:没有

返回值:删除的那一项

是否改变原数组:改变

*/

var oldAry = ['第一个',2,3];

var returnValue = oldAry.shift();

console.log(oldAry,returnValue); // [2,3]'第一个'

/*

4.unshift()

作用:在数组前面追加元素

参数:追加的东西

返回值:原数组

是否改变原数组:改变

*/

var oldAry = ['red','blue','green'];

var returnValue = oldAry.unshift('pink','black');

console.log(oldAry,returnValue); // ['pink','black','red','blue','green']

/*

5.reverse()

作用:把数组里翻转

参数:没有

返回值:一个新数组

是否改变原数组:改变

*/

var oldAry = ['red','blue','green'];

var returnValue = oldAry.reverse();

console.log(oldAry,returnValue); // 一个新数组(翻转后的)

/*

6.sort()

作用:排序

参数:没有或者是一个函数

返回值:一个新数组

是否改变原数组:改变

*/

var oldAry = [3,1,5];

var returnValue = oldAry.sort();

console.log(oldAry,returnValue); // 拍完后的一个新数组

// 排10以上的,需要传参

var oldAry = [3,1,5,11,20];

var returnValue = oldAry.sort(function(a,b){

returna-b;// 升序

returnb-a;// 降序

});

console.log(oldAry,returnValue);

//回调函数:1.函数是你定义的 2.你没有调用 3.但是这个函数却执行了

/*

7.splice()

作用:增删改一体化

参数:多个

返回值:删除的元素(用数组装的)

是否改变原数组:改变

*/

var oldAry = [3,1,5,11,20];

// 1.删除 必须要有2个参数

// 第一个参数表示从哪里开始删,第二个表示删几个

var returnValue = oldAry.splice(0,3);

console.log(oldAry,returnValue);

// 2.新增得3个参数

var returnValue = oldAry.splice(0,0,4);

console.log(oldAry,returnValue);

// 3.修改(删除的个数和新增的个数可以不一致)

var oldAry = [1,2,3,4,5,6];

var returnValue = oldAry.splice(0,3,7,8,9);// 删除3个,增加7,8,9

console.log(oldAry,returnValue);

/*

8.slice()

作用:截取你选中的特定的内容

参数:1个或两个

返回值:截取的数组

是否改变原数组:没有

*/

var oldAry = [1,2,3,4,5];

// 如果没有参数或者参数只有一个(0),表示把原数组复制一份

var returnValue = oldAry.slice(2);

console.log(oldAry,returnValue);

// 两个下标,表示开始到结束,包含开始不包含结束

var returnValue = oldAry.slice(0,3);

console.log(oldAry,returnValue);

/*

9.concat()

作用:实现多个数组或者值的拼接

参数:值或者是数组

返回值:拼接完的数组

是否改变原数组:没有

*/

var oldAry = [1,2,3,4,5];

var addAry = [9,9,9];

var returnValue = oldAry.concat([6,7,8]);

var returnValue = oldAry.concat(6,7,8);

var returnValue = oldAry.concat(addAry);

console.log(oldAry,returnValue);

/*

10.toString()

作用:把数组转换成字符串

参数:没有

返回值:字符串

是否改变原数组:不改变

*/

var oldAry = [1,2];

var returnValue = oldAry.toString();

console.log(oldAry,returnValue);

/*

11.join()

作用:用指定的字符拼接

参数:字符

返回值:拼接完的字符串

是否改变原数组:不改变

*/

var oldAry = [1,2,3,4];

var returnValue = oldAry.join('-');

console.log(oldAry,returnValue);

12.indexOf/lastIndexOf()

作用:检索某一项是否出现在这个数组中

参数:(m,n)

返回值:布尔值

是否改变原数组:没改变

*/

// indexOf (第一次出现)

// 第一个参数 你要检测的项

// 第二个参数 从哪个位置开始检索

varoldAry = [1,2,3,4,1,1,1];

varreturnValue = oldAry.indexOf(1,1);

console.log(oldAry,returnValue); // 原数组 4

// lastIndexOf(最后一次出现的位置)

// 第一个参数 你要检索的项

// 第二个参数 到哪个位置检索

// 如果没有找到返回是-1

varoldAry = [1,2,3,4,1,1,1];

varreturnValue = oldAry.lastIndexOf(1,5);

console.log(oldAry,returnValue); // 原数组 4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值