js中的应用数据类型

array数据类型的详细解读

数组是对象数据类型,只不过是对象数据类型中的一个细分类而已console.log(typeof [1, 2, 3]); -->"object"

定义一个数组有两种方式字面量方式var ary = [45, 56, 67];实例创建var ary = new Array();

console.dir(ary);数组也是有属性名和属性值组成的,只是我们不用写属性名即可,默认属性名是数字,代表当前是数组中的第几个值-->索引0代表第一个值 ary[0]ary[索引] 获取数组中对应的值ary.length 存储的值是当前数组的个数

一般我们都是是用for循环来遍历数组中的每一项,进行相关的操作for (var i = 0; i < ary.length; i++) {    var cur = ary[i];//每一次循环获取当前数组中的那一项}
var ary = [12, 23];增加第三项-->往末尾增加一项ary[2] = 34;添加前最后一项的索引是ary.length-1,我们在它的后面添加一项,索引是ary.lengthary[ary.length] = 34;

删除第四项 -->删除数组最后一项delete ary[3];delete ary[ary.length - 1];数组中的length属性是可以修改值的ary.length = ary.length - 1; 或者ary.length -= 1;console.log(ary);

数组常用的方法(记住这些方法的四个维度):1、方法的作用2、方法的参数3、方法的返回值4、原有的数组是否发生了改变

var ary = [12, 23, 56, 67, 78, 89, 91, 13];

一、数组的增加、删除、修改1、push() 向数组的末尾增加新的元素  参数:要增加的内容(可以是多个值) 返回值:增加内容后数组的长度值 原有数组改变了    var res = ary.push(78, 100);    console.log(res);    console.log(ary);

2、pop() 删除数组最后一个元素 返回值:删除的那个元素 原有数组改变    var res = ary.pop();    console.log(res);    console.log(ary);

3、shift() 删除数组的第一个元素 返回值:删除的那个元素 原有数组改变    var res = ary.shift();    console.log(res);    console.log(ary);

4、unshift() 向数组的开头增加新的元素 参数:要增加的内容(可以是多个值) 返回值:增加内容后数组的长度值 原有数组改变了    var res = ary.unshift(100, 200);    console.log(res);    console.log(ary);

5、splice(n,m) 从索引n开始删除m个元素  返回值:把删除的内容当做一个新的数组返回  原有的数组改变了splice(n) 从索引n开始删除到数组的末尾  --> splice(0) 全删,清空数组  --> splice() 一个都不删除    var res = ary.splice(2, 4);    console.log(res);    console.log(ary);

splice(n,m,x) 从索引n开始,删除m个元素,用x把这个位置填补上  返回值:把删除的内容当做一个新的数组返回  原有的数组改变了    var res = ary.splice(2, 2, "珠峰培训");    console.log(res);    console.log(ary);

splice(n,0,x) 从索引n开始,一个都不删除,把x添加到索引n的前面   原有的数组改变了    var res = ary.splice(3, 0, "珠峰培训");    console.log(res);    console.log(ary);

二、数组的查询var ary = [12, 23, 56, 67, 78, 89, 91, 13];1、slice(n,m) 从索引n开始,找到索引m处(不包含m这一项),把找到的内容当做一个新的数组返回,原有的数组不变slice(n) 从索引n开始找到数组末尾  --> slice(0) 复制一份和原来一模一样的数组(数组的克隆) <--> slice()    var res = ary.slice();    console.log(res);    console.log(ary);

2、concat() 实现数组的克隆  原有的数组也是不进行改变的    var res = ary.concat();    console.log(res);    console.log(ary);concat()本身并不是为了实现数组的克隆,而是实现两个数组的拼接的    var a = [1, 2, 3];    var b = [2, 3, 4];    var res = a.concat(b);//a数组拼接了b数组,最终合并成一个数组    console.log(res);

三、数组转为字符串1、join2、toString

一些常用的但不兼容的方法1、indexOf 不兼容  --> lastIndexOf2、forEach 不兼容3、map 不兼容

四、操作数组的顺序var ary = [12, 23, 56, 7, 78, 89, 91, 13];1、reverse() 将数组倒过来排列  原有的数组改变    var res = ary.reverse();    console.log(res);    console.log(ary);

2、sort() 实现数组的排序  原有的数组改变  但是默认情况下只能处理10以内的数字,超过10按照第一个字母排序传递一个参数可实现高级的排序  参数是一个函数,有两个形参a,b,return a-b是升序,return b-a是降序    ary.sort(function (a, b) {        return b - a;    });    console.log(ary);

数组中冒泡排序思想
   var ary = [12, 8, 14, 9, 1];   ary.sort(function (a, b) {       console.log(a, b);    });    console.log(ary);里面的函数执行了4次12 88 1414 99 1a是每一次的当前项,b是后一项  return a-b; 返回当前项和后一项的差值--> 大于0 小于等于0

冒泡排序的算法思想:当前项和后一项进行比较,如果当前想大于后一项,两者交换位置var ary = [12, 8, 14, 9, 1];  ---> [1,8,9,12,14] 第一轮比较: [8,12,14,9,1] [8,12,14,9,1] [8,12,9,14,1] [8,12,9,1,14] 第一轮两两比较完成后,并没有达到我们的目标值,但是把数组中当前最大的值14 放在了数组的最末尾的位置

 第二轮比较: [8,12,9,1,14] [8,9,12,1,14] [8,9,1,12,14]

 第三轮比较: [8,9,1,12,14] [8,1,9,12,14]

 第四轮比较: [1,8,9,12,14]

 每一轮前后比较完成后,都会把当前最大的那个数值,放在数组的末尾的位置;那么一个数组有5项,我最多只需要把四个最大值分别放在末尾就实现了排序;--->我最多比较 ary.length-1 轮

 每一轮比较的次数也有规律: 第一轮  4次   --> 不用和自己比,所以最多比较4次,并且在这个轮比较前,还没有往后面放最大的数 第二轮  3次  数组末尾放了一个最大的值  ---> 不用和自己比,最多4次,也不用和末尾的那一个比,只剩3次了 第三轮  2次  数组末尾放了两个最大的值  ---> 不用和自己比,最多4次,也不用和末尾的那两个比,只剩2次了 ......

 i是代表轮数  i最多循环ary.length-1次即可

 i=0 第一轮  比较 4次  5-1不用和自己比 -0末尾还没有最大的值 i=1 第二轮  比较 3次  5-1不用和自己比 -1末尾有一个最大的值 i=2 第三轮  比较 2次  5-1不用和自己比 -2末尾有两个最大的值

 j代表每一轮的次数  j最多循环 ary.length-1-i 次

 ary[j]当前值 ary[j+1]是后一项的值 如果当前项的值大于后一项的值的话,两者交换位置

 var a=12; var b=13; a和b交换位置,如何的交换 var c=null; c=a; a=b; b=c;

冒泡排序

function sortAry(ary) {
    for (var i = 0; i < ary.length - 1; i++) {//i是比较的轮数        for (var j = 0; j < ary.length - 1 - i; j++) {//j是每一轮比较的次数            if (ary[j] > ary[j + 1]) {//如果当前的值大于后一项的值,交换位置                var temp = null;                temp = ary[j];                ary[j] = ary[j + 1];                ary[j + 1] = temp;            }        }    }    return ary;}var ary = [12, 23, 45, 25, 12, 15, 17, 18, 1, 2, 5, 4, 8, 19];var res = sortAry(ary);console.log(res);

数组去重

var ary = [1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1, 1, 2, 3, 1, 2, 3, 2, 1, 2, 5, 4, 2, 3, 1];var obj = {};for (var i = 0; i < ary.length; i++) {    var cur = ary[i];    if (obj[cur] == cur) {        //ary.splice(i, 1);        ary[i] = ary[ary.length - 1];        ary.length -= 1;        i--;    } else {        obj[cur] = cur;    }}obj = null;console.log(ary);

函数数据类型
function是引用数据类型中的一种,是一个函数数据类型,我们把function称之为一个函数,或者一个方法,在或者一个功能

function由两部分组成:定义(把需要实现的功能预先处理好)、执行(需要的时候执行这个方法即可,并且根据需要可以多次执行)

    //制定一个约会的方法(计划)    function dating() {        //1、取钱 10000        //2、制定路线方案 爬长城--海洋馆--欢乐谷--国家大剧院--俏江南吃饭--回家    }    //执行计划    dating();    dating();
 
不知道执行sum的时候,会传递几个数字,我们不管它传递几个,有几个我就处理几个console.dir(arguments); arguments是每一个函数天生自带的存储传递参数值的集合,以数字作为索引,索引从0开始;length属性代表传递进来参数值的个数;我们把arguments称之为类数组(对象数据类型的)arguments[0] 第一个参数的值  arguments[1]第二个参数的值 arguments[n]第n+1个参数的值arguments.length 有多少个参数function sum() {    var total = 0;    for (var i = 0; i < arguments.length; i++) {        //i=0 拿第一个参数值 arguments[0]        //i=1 拿第二个参数值 argumnets[1]        //arguments[i] 就是每一次循环的时候,拿出来的对应的参数值        var cur = Number(arguments[i]);        if (!isNaN(cur)) {            total += cur;        }    }    return total;}var total = sum(1, 2, 3, 4, 5, 6, 7, 8, 9);console.log(total);

Date类型


时间: 2024-11-05 16:39:42

js中的应用数据类型的相关文章

js中常见的数据类型

js中常见的数据类型分为两种:基本数据类型.复杂数据类型. 基本数据类型把数据名和值直接存储在栈中. 复杂数据类型在栈中存储数据名和一个堆的地址,在堆中存储属性及值.访问时先从栈获取地址, 再到堆中拿出相应的值 总结:基本数据类型复制的是值,复杂数据类型复制的是引用地址. 为什么划分数据类型? 计算机为了更方便的对内存进行管理,对不同的数据,做了类型上的划分. 如何查看一个变量的数据类型? 使用typeof命名 例如: var x = 5; var res typeof x; 变量的数据类型有

JS中的六大数据类型

js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object). typeof 操作符 由于js中的变量是松散类型的,所以它提供了一种检测当前变量的数据类型的方法,也就是typeof关键字. type of   123 //Number type of   'abc' //String type of    true       //Boolean type of    undefined   //Und

js中的各个数据类型中的相互转化

js中的数据类型有: Object     Null     Undefined     Number    String   Boolean 转化为boolean类型:Boolean(); 转化规则: 数据类型 转化为true的值 转化为false的值 Boolean true false String 任何非空的字符串 ""(空字符串) Number 任何非零数字值 0和NaN Undefined 任何对象 null Object 无 undefined 转化为String类型:S

JS中的Symbol数据类型

最初JS的6种数据类型: null,undefined,boolean,number,string,object 注意:实际上,array和function都是属于object的子类 ES6中,新增了一种数据类型Symbol,现在共7种数据类型 判断: typeof Symbol() === 'symbol' 特点: Symbol('key') !== Symbol('key') //true Symbol类型的对象永远不相等,即便创建它们的时候传入了相同的值,因此,可借助此特性解决属性名的冲突

js中判断对象数据类型的方法

1.类型定义 JS是一种弱类型语言.JS拥有动态类型,相同的变量可以用作不同的类型.JS有7种数据类型:三种基本类型(数字,字符串,布尔),两种引用数据类型(对象,数组),两种特殊数据类型(undefined,null). JS有5种原始类型:数字,字符串,布尔,undefined,null. 2.类型判断 对js中不同数据的布尔值类型总结:false:空字符串:null:undefined:0:NaN.true:除了上面的false的情况其他都为true: 如下: var o = { 'nam

js中的简单数据类型和复杂数据类型

Js的数据类型可以分为简单数据类型和复杂数据类型 简单数据类型有5种,Number,String,Boolean,undefined,null 1.Number数字类型 ,在控制台显示颜色位蓝色 整数,浮点数,科学计数法 NaN是Number类型,但是NaN != NaN 2.String字符串型 , 控制台显示黑色 <1>.单/双引号包裹,成对出现 <2>.str.length 获取字符串的长度 <3>.转义字符 \’ , \” , \n(换行) 3.Boolean

JS中的Number数据类型详解

Number数据类型 Number类型使用IEEE754格式来表示整数和浮点值,这也是0.2 + 0.3不等于0.5的原因, 最基本的数值类型字面量格式是十进制整数 var a = 10; 1. 浮点数值 2. NaN Not a Number:不是一个数,但它属于数值类型 NaN的特点 NaN和任何值进行操作都会返回NaN NaN与任何值都不相等,包括NaN本身 console.log(NaN == NaN) 3. isNaM函数 用于检测一个变量不是数值(Number)类型.isNaN()接

js中的String数据类型

string中包含一些特殊的字符字面量,又叫转义序列,\n 意思是换行,\t 意为制表,\b意为空格,\r回车,\\斜杠. 1.ECMAScript中字符串是不可变的. 2.转换字符串的方法:toString() 返回相应值的字符串形态.null和undefined没有此方法,其他都有. 3.在不知道要转换的值是不是null或undefined的情况下,可以使用转型函数String(),这个函数能将任意值转换成字符串. var value1=null; var value2=undefined;

js中数据类型的理解

1.js中的基本数据类型:String.Number.Boolean.Null和Undefined,还有一种复杂数据类型Object. 2.对于Null和Undefined的不同,现在的JavaScript设计为Null表示'无'的对象,转为数值0:undefined未定义,转为数值NaN.其中NaN的数据类型为number,意为Not a Number;当两种不同的数据的类型相运算时则要注意一些细节,自己总结了一点: 所有和undefined有关的运算,返回的为NaN:  Null + 0 =