Js中数组创建的两种方式和短路运算符

Js中数组创建的两种方式和短路运算符

首先,我们先来说说短路运算


短路运算符有两个

&& 和 ||

没错,他和逻辑运算符一模一样,都是两个& 和 两个 |;

那怎么区分这个运算符到底是进行逻辑运算还是进行短路运算呢?别着急,下面为你们详细讲解!!!

当&&或||左边的值不是布尔类型Js数据类型转换或是关系表达式的时候,那么此时就进行短路运算。

短路运算的规则:

- ||找真

当||左边的为真,那么就返回左边的值,否则,直接返回右边的值

说了这么多,上几段代码看看吧!

function getSum(a,b){
    a = a || 0;//当a不存在时,给a一个默认值;
    b = b || 0;//同上
    return a+b;
}
console.log(10,20);//在控制台打印结果,相信大家也能猜的出来是30.
console.log(10);//这样子调函数的话,函数里面的形参b只有声明,没有赋值,所以b=undefined,在进行短路运算的时候,undefined转为boolean值是false,所以直接取||右边的值,(不懂的话再看一下上面的概念)也就是b不存在时定义了一个默认值0给他,这样函数就不会报错了。  最后结果为10+0=10;

默认值还有另有一种写法,就是在写形参的时候直接给形参赋一个值

function getSum(a=0,b=0){
    return a + b;
}
console.log(getSum(10,20));//输出结果为30;
console.log(getSum(10));//b实参没赋值,但形参上有一个默认值是0,所以最终输出10;

- && 找假

意思是当&&左边的为假,那么就返回左边的值,否则,直接返回右边的值

function getNextElement(ele){
    ele = ele.nextSibling;
    if(ele && ele.nodeType == 1){ //.nodeType是用来判断节点的类型的 ,如果节点是元素节点,则 nodeType 属性将返回 1。如果节点是属性节点,则 nodeType 属性将返回 2。
        //这个条件是用来判断传进来的ele节点的下一个节点是否为空,假如为空,短路运算找假就取ele,ele为false,所以不进入if(),加入不为空,短路运算找假就取ele.nodeType == 1,假如这个关系表达式成立,那么就进入if里面,否则就进入else。
        //
        //
    }else{

    }
}

数组的创建方法有两种

  • new + 构造
var arr = new Array();//Array()是数组的构造函数
//定义了一个空数组,这个数组可以用来存储很多的数据,
array[0] = 20;
array[1] = "abc";
array[2] = true;
array[3] = undefined;
array[4] = null;
console.log(array.length);
console.log(array); // js中的数组,可以直接打印输出,后台语言中的数组不可以直接打印输出,必须遍历


var arr  = new Array(20,"abc",true,undefined,null,30,"mmm",80,false,null);
console.log(arr.length);//输出10
console.log(arr);//打印arr数组
console.log(arr[1]);//打印下标为1的值
console.log(arr[4]);//打印下标为4的值
console.log(arr[arr.length-1]);//打印最后一个值
  • 数组字面量
var arr = [1,2,3,4,"123"];
//第二种定义数组的方式   数组字面量   就是从字面的意思上就能知道这是些什么样的数据
var arr1 = []; // 数组是用[]表示
arr1[2] = 200;
arr1[7] = 102;
console.log(arr1.length);
console.log(arr1);
alert(arr1);//输出8
console.log(arr1[3]);// undefined


var arr = [10,20,30,40,50,60,70,80,true,null,undefined,200,false,109];
  console.log(arr[5]);
  console.log(arr[7]);
  console.log(arr[arr.length-1]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值