JavaScript数据类型

基本数据类型

  1. Boolean
  2. Null
  3. Number
  4. String
  5. Symbol
  6. Undefined

对象数据类型Object

  • Build-in object
  1. Array
  2. Date
  3. RegExp
  4. more...

Array

  • 定义:JavaScript数组是内置的对象之一,它可以用一个变量来存储多个同种类型或不同类型的值。
  • 构造方法
  1. var newArr = new Array(values);
  2. var newArr = [values];
  • 判断是否数组
  1. Array.isArray(arr)
  2. arr instance of Array
  • 数据结构
  1. 栈(stack) 后进先出(LIFO), 操作:进栈arr.push(element), 出栈arr.pop(element)
  2. 队列(queue) 先进先出(FIFO), 操作:入队arr.shift(element), 出队arr.unshift(element)
  • 排序
  1. 反序. arr.reverse()
  2. 正序. arr.sort(compare). 若是字母,arr.sort()默认按字母表顺序排列; 若是数字数字字符串,可以通过设置compare函数返回值来升序或降序排列。
function compare(a, b) {
return a - b; //升序, return b - a 为降序
}
  • 数组连接(concat)

var newArray = currentArray.concat(arr1, arr2);

其中 arr1和arr2可以是字符串或者数组

  • slice和splice

    二者皆有切片功能,即把数据的某部分切下来放到另一个数组里。不同的是slice只是把原数组的内容复制到另一个数组,并不会影响原数组,而splice则会影响原数组。打个比方,slice就像一台扫瞄仪,只扫描信息,不损坏原来信息;而splice像一个影片剪辑,会对剪辑的影片进行剪掉或拼接。两者的最后一个参数都是可选的,slice默认count为currArr.length - index, 而splice默认insertElement为空.

    slice用法:var newArr = currArr.slice(index, count) 结果是把currArr从index开始之后的count个元素扫描到newArr;

    splice用法:var newArr = currArr.splice(index, count, insertElement) 结果是把currArr从index开始之后count个元素剪掉放到newArr里。

  • 索引

    arr.indexOf(element) 从arr[0]开始找出element所在位置

    arr.lastIndexOf(element) 从arr[arr.length-1] 开始找出element的位置。

  • 数组遍历
  1. every. var result = currArr.every(function(element, index, array){ return ... }); result类型为Boolean
  2. some. var result = currArr.some(function(element, index, array){ return ... }); result类型为Boolean
  3. map  var result = currArr.map(function(element, index, array){ return ... }); result类型为Array
  4. filter   var result = currArr.every(function(element, index, array){ return ... }); result类型为Array
  5. forEach 无返回值
  • 归并
  1. reduce 用法 var result = currArr.reduce(pre, curr, index, array){return pre+curr;} 从currArr[0]开始求数组元素之和
  2. reduceRight  用法 var result = currArr.reduceRight(pre, curr, index, array){return pre+curr;} 从currArr[currArr.length - 1]开始求数组元素之和
  3. 两者结果相同

JavaScript数组知识网络的更多相关文章

  1. JavaScript数组知识

    JavaScript数组知识 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  2. javascript基础知识-数组

    1.javascript创建数组时无需声明数组大小或者在数组大小变化时重新分配 2.javascript数组是无类型的 3.数组元素不一定要连续 4.针对稀疏数组,length比所有元素的索引都要大 ...

  3. 【转载】JavaScript基础知识体系

    前言 最近总是有一种感觉,对于知识没有积淀,很多时候都是忘记了哪里就去查一下,比如JS这种语言,很是浪费时间,如果能够把这些知识形成知识体系塞进大脑,做到即用即取就好了,那么就可以借助思维导图来帮助我 ...

  4. AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解

    AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解 javascriptvue-clicommonjswebpackast  阅读约 27 分钟 抽象语法树(AST),是一 ...

  5. 也谈面试必备问题之 JavaScript 数组去重

    Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...

  6. 深入浅出 JavaScript 数组 v0.5

    有一段时间不更新博客了,今天分享给大家的是一篇关于JS数组的,数组其实比较简单,但是用法非常灵活,在工作学习中应该多学,多用,这样才能领会数组的真谛. 以下知识主要参考<JS 精粹>和&l ...

  7. javascript常用知识点集

    javascript常用知识点集 目录结构 一.jquery源码中常见知识点 二.javascript中原型链常见的知识点 三.常用的方法集知识点 一.jquery源码中常见的知识点 1.string ...

  8. 七个开法者经常忽略或误用的JavaScript基本知识

    七个开法者经常忽略或误用的JavaScript基本知识 翻译自 http://tech.pro/tutorial/1453/7-javascript-basics-many-developers-ar ...

  9. Javascript数组求和的方法总结 以及由斐波那契数列得到的启发

    一次面试中,面试官要求用三种不同的Javascript方法进行一个数字数组的求和,当时思来想去只想到了使用循环这一种笨方法,因此面试比较失败,在这里总结了六种Javascript进行数组求和的方法,以 ...

随机推荐

  1. js中:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. c#串口编程和单片机通信重大发现

    1.遇到问题时看看这里 //每次响应中断结束后清空缓存,防止在显示关闭时,打开后又一次性出现 serialPort1.DiscardInBuffer();

  3. jquery简单的拖动效果

    <!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/h ...

  4. python 画正弦曲线

    要画正弦曲线先设定一下x的取值范围,从0到2π.要用到numpy模块. numpy.pi 表示π numpy.arange( 0 , 2π ,0.01)  从0到2π,以0.01步进. 令 x=num ...

  5. php 和 apache的关系

    例如在客户端游览器输入他也回把这个地址传送到192.168.1.100里的apache里的,apache一看你传过来的是Php文件,如果在服务器没装php的情况下,他也会把这个文件打开,把里面的代码全 ...

  6. [Ioi2007]Miners 矿工配餐(BZOJ1806)

    [Ioi2007]Miners 矿工配餐 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 214  Solved: 128 Description 现有两 ...

  7. 【破解】破解ACDSEE15的方法

    1.先从官方下载一个ACDSEE15简体中文版 2.下载注册机(点我下载) 3.修改注册表 修改注册表ACDSee 32位:HKEY_LOCAL_MACHINE\SOFTWARE\ACD System ...

  8. 执行yiic webapp命令时报错:php.exe不是内部或外部命令,也不是可运行的程序

    在执行 yiic webapp ../abc 命令时报错: “php.exe”不是内部或外部命令,也不是可运行的程序 或批处理文件. 这是因为yiic批处理程序找不到php.exe的执行路径引起的. ...

  9. LeetCode_Populating Next Right Pointers in Each Node II

    Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tre ...

  10. 《Programming WPF》翻译 第8章 2.Timeline

    原文:<Programming WPF>翻译 第8章 2.Timeline Timeline代表了时间的延伸.它通常还描述了一个或多个在这段时间所发生的事情.例如,在前面章节描述的动画类型 ...