JavaScript修炼之路-筑基篇(二)运算、数组

在上一篇学会引用和定义变量后,开始学习异或复习简单的语法

目录

1、运算

2、流程控制

3、数组


1、运算

  • 运算的优先级

        ()

        ++、--

        * / %

        > =  <

        ==、 !==

        先  &&  后   ||

        =   

        

  • 浮点数精度问题

        如 0.07*100=7.00000000000000001

        尽量将浮点数避开

  • !== 或=== 要求值和类型都一致

        ==  判等号 会转型

  • 逻辑短路运算

        当表达式左边可以确定结果时,直接返回左边;

        console.log(123&&345)//返回345

        console.log(0&&123)//返回0

2、流程控制

即控制代码按照什么结构顺序来执行

        主要三种,顺序、分支(if、switch)、循环

switch(){

case value1:执行语句1;

break;

default:

执行最后语句;

}

注意switch里面的值需与case里面的全等才行。

三元表达式

条件表达式?;表达式1:表达式2;

false 表达式2、ture 表达式1

熟练可常用于简洁语句

循环与c语言一样

for      while      do..while

注意 continue用于跳出本次循环,继续下次循环;

break用于跳出整个循环;

3、数组

创建数组

  • var 数组名 = new Array();
  • var 数组名=[]; //常用;

数组中可以放任何数据类型;

判断是否为数组(两个方法)

  • var arr = [];

      console.log(arr instanceof Array);

  • Array.isArray(arr)

数组名.length,即为数组长度,动态检测数组的元素个数

修改数组长度  a.length=10;(多出来的为空)修改索引号以进行增加数组元素;

        筛选数组,例如:

var a=[1,2,3,87,45,33,22,67];

        var newb=[];

        for (var i = 0i < a.length ; i++)

        { if (a[i]>10)

            newb[newb.length] = a[i];

        }

        console.log(newb);

添加数组 .push

(1)追加新的元素

var arr = [1,2,3];

      arr.push(4);

      console.log(arr);//输出1,2,3,4

 console.log(arr.push(5));//push完毕后返回的是新数组的长度

(2)在开头添加

arr.unshift('pink');

删除数组元素

1 从后面开始删除

arr.pop();

    console.log(arr.pop());//返回的是删除的元素

(2)shift() ; //删除第一个元素

翻转数组

(直接调用

arr.reverse();

排序(冒泡排序

arr.sort();//基数排序超过两位数就不准确

下面解决:

var arr1 = [12,44,56,22,98]

      arr.sort(function ( a , b ) {

          return a - b ;//升序,b-a降序

      });

      console.log(arr1);

//记住就行

获取数组元素索引 indexOf

var arr = [1,2,'pink',3];

      console.log(arr.indexOf('pink'));//只返回第一个满足的索引号,找不到返回-1

 console.log(arr.lastIndexOf(3));  //返回数组中最后一个满足的索引号

数组去重:

遍历旧数组,拿旧数组的元素查询新数组,没出现过就push。

 function unique(arr) {

        var newArr = [];

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

          if (newArr.indexOf(arr[i] )=== -1)

          newArr.push(arr[i]);

        }

        return newArr;

      }

      var demo = unique(['1','a','b','c','d','a','b','c'])

      console.log(demo);

数组转化为字符串

var arr = [1, 2, 2];

     console.log(arr.toString()); //1,2,3

     var arr1 = ['green', 'blue', 'pink'];

//分隔符join

     console.log(arr1.join());

     console.log(arr1.join('-')); //即各个数之间加-

会输出:

1,2,2

index.html:12 green,blue,pink

index.html:13 green-blue-pink

连接数组

concat()返回一个数组,不影响原数组

var arr = [1, 2, 2];

     var arr1 = [2,3,4];

     var newarr = arr.concat(arr1);

     console.log(newarr);

也可连接字符串

数组截取 slice(  ,)

slice()数组截取slice(begin ,end)返回被截取的新数组

splice()删除splice(第几个开始,要删几个)返回被删除的新数组,会影响原数组

两个目的基本一致


祝你学习快乐!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superfortunate

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值