梅科尔工作室-李庆浩-网页前端6

1数组

1.1数组定义

JS中定义数组的三种方式如下(也可先声明再赋值);

1.var arr = [值1,值2,值3];//隐式创建

var arr2=[1,2,'a',4];
console.log(arr2);

2.var arr=new Array(值1,值2,值3);//直接实例化

var arr3=new Array(1,2,3);

console.log(arr3);

3.var arr=new Array(size); //创建数组并指定任意长度

var arr4=new Array(4);
 console.log(arr4);

1.2数组的基本操作

1.数组的下标从0开始

获取数组指定下标的值:数组名[下标];

console.log(arr2[1]);

如果下标不存在,则会显示undefinded

2.设置数组的值:数组名[下标]=值;

arr2[1]=10;
console.log(arr2[1]);

如果下标不存在,则自动扩容

arr2[10]=8;

console.log(arr2);

显示Array(11) [ 1, 10, "a", 4, <6 empty slots>, … ]

3.获取数组的长度:数组名.length;

console.log(arr3.length); // 3

4.设置数组的长度:数组名.length=值;

arr3.length=5;

console.log(arr3.length); // 5

5.设置数组的属性

如果设置非整数的下标,则会成为数组的属性,不计入数组的长度。

设置属性:数组名.属性名=值;

                  数组名[“属性名”]=值;

获取属性:数组名.属性名;

                  数组名[“属性名”];

arr3.name="zhangsan";

console.log(arr3);

arr3["pwd"]="123456";

console.log(arr3);

6.获取数组的属性

console.log(arr3["name"]); //zhangsan

1.3数组的遍历

JS

提供三种遍历数组的方式:

1.3.1.for循环遍历

不遍历属性

for(var i=0;i<数组长度;i++)

{

}

1.3.2.for...in循环

不遍历索引中的undefined

for(var 下标名 in数组)

{

}

1.3.3.forEach循环

不遍历属性和索引中的undefined

数组.forEach(funiction(element,index)

{

        //element:元素

        //index:下标

})

1.4数组提供的方法

常用的:

1.4.1.push

添加元素到最后

arr.push(2);

1.4.2.indexof

数组元素索引,如果找不到元素返回-1.

arr.indexof(2);

1.4.3.join

数组转成字符串

 arr.join();

arr.join(",")//元素之间以逗号隔开

1.4.4.split

字符串方法:将字符串转换成数组

arr.split(",")//元素之间以逗号隔开

不常用的:

unshift:添加元素到最前

pop:删除最后一项

shift:删除第一项

reverse:数组翻转

slice:截取(切片)数组,原数组不发生变化

splice:剪接数组,原数组变化,可以实现前后删除效果

concat:数组合并

2.函数

2.1函数的定义

有三种函数定义的方式:函数声明语句,函数定义表达式,Function构造函数

2.1.1函数声明语句

function 函数名([参数列表])

{

}

例:function foo()

{

        console.log(1);

}

foo();

该种方式的定义函数具有声明提升的效果

foo();

function foo()

{

        console.log(1);

}

变量声明提升

console.log(a);

var a=2;

2.1.2.函数定义表达式

var 变量名/函数名=function(参数列表)

{

}

例:var fn01=function(a,b)

{

        console.log(a+b);

}

2.1.3.Function构造函数

var 函数名=new Function(参数列表,函数体);

var 函数名=new Function('a','b','return (a+b)');

2.2函数的参数

2.2.1.实参可以省略,则形参为undefined

fno1(); // NaN

fno2(1); // NaN

fno2(1,2); // 3

2.2.2.如果形参名相同,则以最后一个参数为准。

function test(x,x)

{

        console.log(x);

}

test(1,2); // 2

2.2.3.可以设置参数的默认值

第一种:function test03(x)

{

        如果形参x有值,则值为x传递的值,否则值为“x“

        x=x||"x" 

        console.log(x);

}

test03(10); // 10

test(); // x

第二种:function test04(x)

{

        (x!=null&&x!=undefined)?x=x:x="x";

        console.log(x);

}

test04(); // x

test04(hello); // hello

2.2.4.参数为值,传递副本;参数是引用传递,则传递的是地址,操作的是同一个对象。

var num=10;

function test05(num)

{

        num=20;

}

test05(num);

console.log(num); // 10

var obj=(name:"zhangsan");

console.log(obj);

function test06(o)

{      

        o.name="lisi";

}

test06(obj);

console.log(obj); // (name:"lisi");

2.3函数的调用

2.3.1.常用调用模式

函数名(参数);

function fn01(x)

{

        console.log(x)

}

fn01(“冬奥加油”);// 冬奥加油

2.3.2.函数调用方式(函数有返回值)

var 变量名 =函数名(参数列表);

var f2=function(a)

{

        console.log(a);

        return a;

}

var num1=f2(1);

console.log(num1); // 1

2.3.3.方法调用模式

对象.函数名(参数列表);

var obj={

name:"zhangsan",

age:18,

sex:true,

cats:["大毛","二毛"],

dog:{

        name:"张二狗",

        age:1

},

sayhello:function()

{

        console.log(”你好呀“);

}}

console.log(obj);

obj.sayhello(); //对象调用函数

2.4.return

2.4.1.在没有返回值的方法中,用来结束方法

function a1()

{

        console.log("122456");

        return;

        console.log("222256");

}

console.log(a1); //d第二个不会出现

2.4.2.有返回值的方法中,一个用来结束方法,一个将值带给调用者

function a2()

{

        console.log("有返回值");

        return "test";

}

console.log(a2); // 有返回值    test

2.5函数的作用域

在JS中,只有在函数中才有作用域。

2.5.1.在函数中,存在局部变量和全局变量

2.5.2.在函数中,如果声明变量时为使用var修饰符,则该变量时全局变量

var pp="hello";//全局变量

function qq()

{

        var box1=10;//局部变量

         box2=20;//全局变量

}

qq();

console.log(pp); 

console.log(box1); //会报错因为是局部变量

console.log(box2);//先调用函数才能显示这个变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值