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. (一)CodeMirror - 基本应用

    基本引用: <link rel="stylesheet" href="../lib/codemirror.css"> <script src= ...

  2. STL set容器添加结构体并排序

    #include <iostream> #include <string> #include <cstring> //strcpy #include <cst ...

  3. 文件:一个任务 - 零基础入门学习Python029

    文件:一个任务 让编程改变世界 Change the world by program 一个任务 这节课,我们需要一起来完成一个任务:将文件(record.txt)中的数据进行分割并按照以下规律保存起 ...

  4. C# .net Jquery ajax 简单示例

    jquery中ajax相信大家都不陌生,这里只写个简单例子示意用法,详细后续再写. 在html中按钮事件中添加如下js var param = "data=" + escape($ ...

  5. layout_weight

    最近写Demo,突然发现了Layout_weight这个属性,发现网上有很多关于这个属性的有意思的讨论,可是找了好多资料都没有找到一个能够说的清楚的,于是自己结合网上资料研究了一下,终于迎刃而解,写出 ...

  6. 一键安装IIS的点点滴滴——For所有Microsoft的操作系统(上)

    原文www.cnblogs.com/cdts_change/archive/2010/03/04/1677338.html 临近公司的软件要完工了,最近几天一直在泉哥的带领下为我们公司的产品做IIS一 ...

  7. linux环境c++开发:ubuntu12.04使用llvm3.4.2

    什么是 clang/llvm/libc++[1] clang 是最近几年(在大财主苹果的支持下)发展得非常好的 C 家族语言 (包括C/C++/Obj-C/Obj-C++) 编译器前端,所谓前端,就是 ...

  8. js收集错误信息,错误上报

    线上的代码可有有时候用户会反应不好使,一般是因为js造成的! 尤其在移动端各个手机之前的差异特别大. 下面这段代码是获取能帮助你! <script> window.onerror = fu ...

  9. winform程序中Label自动换行

    参考的是网上这篇文章:http://www.cnblogs.com/qb371/archive/2011/09/20/2366310.html 不过貌似注释有点问题,我的代码如下,我是将label放在 ...

  10. CF 579A Raising Bacteria

    题意:细菌爱好者在盒子里面培养细菌.最初盒子是空的,每天可以往盒子里面添加任意数目的细菌,而且每天每个细菌会分裂成两个.在某一时刻要想获得某一数量的细菌,要求最初放置的最少的细菌数目. 思路: 求出 ...