首页 > 代码库 > Js 基本数据类型,var 变量,数组

Js 基本数据类型,var 变量,数组

(一) Js 数据类型

  分为基本数据类型以及引用类型

  基本数据类型有 null,undefined,Boolen,Number,String,还有一种复杂数据类型 Object。

        var var1 = "xianrongbin", var2 = false, var3 = null, var4 = undefined, var5 = 123;        console.log(typeof var4);        var var6 = [1, 23, 5];        console.log(typeof var6);

   这里,其实只需一个var的,为了区别基本数据类型与复杂数据类型,写了两个var 关键字。

       将所有的变量定义在一个var后面,有益提升程序运行效率

       如果在一个函数中,不标注 var,则该变量是全局变量,是window的变量,因为所有全局变量都是由window承担的。

     function testVar() {            num = 1;        }        testVar();        console.log(window.num);

   这里输出1,如果在 "num" 前加上var,输出则会报错。

        基本数据类型与值类型,一个是传值,一个是改变地址。   

  var var6 = [1, 23, 5];           function changeValue(obj) {            obj.pop();        };                changeValue(var6);        console.log(var6);        var num = 1;        function changeNum(num) {            num = num + 1;        };        console.log(num);
代码

   输出的值是 [1,23]  1。 这点很重要。 这里于C#有很大的不同。

(二) 数组操作

       数组类型是Object。

      若要     往数组尾添加一个或多个元素,可用push(),

                删除最后一个元素,可用pop(),

             删除数组头一个元素,可用shif(),

      向数组头添加一个或多个元素,可使用unshift,

      需要知道某个元素在数组中的位置,可用indeOf(元素名称),不存在返回-1,

      知道元素的位置后,需删除某个元素,则使用splice(index,1),

                如果需要删除某个元素,替换成1个或多个元素,则使用splice(index,1,a,b...),

                如果需要在某个元素后插入1个或多个元素,则使用splice(index,0,a,b...),也只是将上面的1变成0罢。

      这里需要注意的是contact方法。

  上述方法都会改变原数组属性,即改变指针;contact不会改变原有的数组,只是返回原数组的一个副本

  看看下面操作后testArray的结果

        var testArry = [1, 2, 3, 4, 5, 6];        testArry.push(7);              testArry.pop();        testArry.shift();        testArry.unshift(‘unshift1‘, ‘unshift2‘);        concatArry= testArry.concat(‘concat1‘);        var index = testArry.indexOf(‘concat1‘);        testArry.splice(index, 1);        testArry.splice(0, 1, ‘replace1‘,‘replace2‘);
Array操作基本函数

  结果是:   ["replace1", "replace2", "unshift2", 2, 3, 4, 5]

    

(三)五个迭代函数

  这五个迭代函数是.every .some .filter .forEach  .map他们都有三个参数(item,key,value),key是从0开始计数,后两个参数可选用。

  . every()   对数组中的每一项运行给定的函数,如果该函数对每一项都返回true,则返回true   

  . some()    对数组中的每一项运行给定的函数,如果该函数对任意一项返回true,则返回true  

  . filter()  对数组中的每一项运行给定的函数,返回该函数返回true的项组成的数组。  

  . forEach() 对数组中的每一项运行给定的函数,这个方法没有返回值  

  . map()     对数组中的每一项运行给定的函数,返回每次函数调用的结果组成的数组

     用法如下

var testArry = [1, 2, 3, 4, 5, 6];        var isAllBig2 = testArry.every(function (item) {           return item > 2;        });        console.log(isAllBig2);        var isSomeBig2 = testArry.some(function (item) {            return item > 2;        });        console.log(isSomeBig2);        var filterArray = testArry.filter(function (item) {           return item > 2;        });        console.log(filterArray);               var mapArray = testArry.map(function (item) {           return item + 2;        });        console.log(mapArray);        var forEachResult = testArry.forEach(function (item) {            if (item >5) {                console.log(item);            }        });

  其中,.forEach是无返回值,而其他几个是有返回值的,这点需要注意。

  上述输出结果分别是 

    false
    true
    [3, 4, 5, 6]
    [3, 4, 5, 6, 7, 8]
    6
 

 

    
  
 
 

Js 基本数据类型,var 变量,数组