数组

JS中的数组来自window,是一个全局的对象,typeof的值是'object'。

创建数组:

1.Array(3):当只传一个值的时候,会生成一个长度为该数值的空数组。

2.Array(3,3):当传入的值大于1个的时候

3. new Array(3) 跟加不加new是一样的

4. new Array(3,3) 跟加不加new是一样的

5. a = [1,2,3] 最好用的

数组的本质

数组就是数据的有序的集合,但是从JS的角度来看,数组就是原型链中有Array.prototype的对象

见下图:

伪数组

有0,1,2,3,4,5,....n和lenght这些key的对象,但是原型链中没有Array.prototype

伪数组有:

arguments对象和document.querySelectAll('div')返回的对象

数组中的API

记几个比较重要的:

1.遍历数组

Array.prototype.forEach

var a = [1,2,3,4]
a.forEach(function(k,v){
console.log("key",k)
console.log("value",v)
})

2.排序数组

Array.prototype.sort

    var a = [1,2,3,4]
console.log(a.sort())
// 倒过来排
console.log(a.sort(function(x,y){
return y-x
}))

3.连接所有数组元素组成一个字符串

Array.prototype.join

    var a = [1,2,3,4]
console.log(a.join("-")) // 1-2-3-4

4.返回一个由当前数组和其它若干个数组或者若干个非数组值组合而成的新数组。

Array.prototype.concat

    var a = [1,2,3,4]
var b = [5,6]
console.log(a.concat(b)) // [1,2,3,4,5,6]

5.返回一个由所有数组元素组合而成的字符串。遮蔽了原型链上的

Array.prototype.toString

    var a = [1,2,3,4]
console.log(a.toString()) // 1,2,3,4

6.返回一个由回调函数的返回值组成的新数组

Array.prototype.map

    var a = [1,2,3,4]
console.log(a.map(function(x){
return x*2
})) // [2,4,6,8]

7.将所有在过滤函数中返回 true 的数组元素放进一个新数组中并返回。

Array.prototype.filter

var a = [1,2,3,4]    
console.log(a.filter(function(x){
if (x>=3){
return true;
}
})) //[3,4]

8.从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。

Array.prototype.reduce

    var a = [1,2,3,4]
console.log(
a.reduce(function(sum,n){
return sum+n
},0)
) //10

如果想知道更详细的请见MDN:MDV数组

函数

函数的5种声明:

1.具名函数

2.匿名函数

3.具名函数赋值

4.window.Function

5.箭头函数(ES6的语法)

调用函数、this和arguments

f.call(asThis, input1,input2)
function f(){
'use strict'
console.log(this)
console.log(arguments)
return undefined
}
f.call(1,2,3) // this 为 1,arguments 为 [2,3]

使用 strict和不是使用strict的区别

当不传入任何参数的时候

作用域记住变量提示即可。

闭包:如果一个函数,使用了它范围外的变量,那么这个函数加这个变量就叫做闭包!

JS数组和函数 小记的更多相关文章

  1. js 数组处理函数

    本文转载自有有<js 数组处理函数> concat 将参数列表连接到原数组后面形成一个新的数组并返回,原有数组不受影响. var arr = ["a","b& ...

  2. JS数组常用函数以及查找数组中是否有重复元素的三种常用方法

    阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法  1. var ary = new Array(&qu ...

  3. JS数组at函数(获取最后一个元素的方法)介绍

    本文介绍js中数组的at函数,属于比较简单的知识普及性文章,难度不大. 0x00 首先,我们可以思考如下一个问题,如果要获取一个数组的最后一个元素(这是很常用的操作),我们应该怎么做? 相信大部分人能 ...

  4. JS 数组及函数

    数组    定义        Array(1,3.14,"aa")            给数据        Array(5)            给长度        [1 ...

  5. 最近学习的 Node.js 数组_函数

    数组的排序,用到了箭头函数 let arr=[, , , , , , ]; /* arr.sort(function (n1, n2){ return n1-n2; }); */ // 等价于上面的写 ...

  6. js 数组操作函数有:push,pop,join,shift,unshift,slice,splice,concat

    (1)push 和 pop 这两个函数都是对数组从尾部进行压入或弹出操作.push(arg1,arg2,...)可以每次压入一个或多个元素,并返回更新后的数组长度.注意如果参数也是数组的话,则是将全部 ...

  7. js 数组 splice 函数 多线程

    <script type="text/javascript"> var arr = new Array(6) arr[0] = "00" arr[1 ...

  8. JS分割字符串并放入数组的函数

    JS分割字符串并放入数组的函数: var InterestKeywordListString = $("#userInterestKeywordLabel").html();  v ...

  9. js中的函数,Date对象,Math对象和数组对象

    函数就是完成某个功能的一组语句,js中的函数由关键字 function + 函数名 + 一组参数定义;函数在定义后可以被重复调用,通常将常用的功能写成一个函数,利用函数可以使代码的组织结构更多清晰. ...

随机推荐

  1. vim命令以及gcc编译器的常用cmd

    Gcc常用命令:         -c    仅对源文件进行编译,不链接生成可执行文件.常用于查错和只生成目标文件.     -o    经过gcc处理过后的结果保存在-o后面的文件中,可以是多种文件 ...

  2. html中常用的标签元素

    <html></html> 创建一个HTML文档<head></head> 设置文档标题和其它在网页中不显示的信息<title></t ...

  3. sql server还原到指定时间

    BACKUP LOG yjxy_1010 TO DISK='d:\yixy_log.bak' WITH FORMAT 数据库右击->任务->还原->还原事务日志.

  4. JavaSe 之三目运算符应用

    刚学习Java基本知识,对于三目运算符的应用,尝试了做出求某年份中月份的天数. /*自己随意定义一个年份和月份,使用三目运算符 取得当前月份具体天数.并且输出在控制台. 注意哦:大月31天,小月30天 ...

  5. jQuery查找标签--选择器,筛选器,模态对话框, 左侧菜单栏

    查找标签 选择器: 基本选择器(同css) id选择器 $("#id") 标签选择器 $('tagName') class选择器 $(".className") ...

  6. 详解sizeof与strlen

    一,sizeof是C语言的一种单目运算符,与C语言的其他运算符++,--一样,它并不是函数:sizeof()以字节为单位给出了操作数的大小:sizeof的值是无符号int. strlen是一个函数,只 ...

  7. 【flask】 学习flask macro 模板

    首先 我是看着这个链接学习的 jinja2 macro官方文档 Flask开发中Macros的实践经验 Flask的Jinja2模板引擎 — 块与宏(6th) 在宏中 还可以赋值...用set标签.. ...

  8. Spring 并发事务的探究

    前言 在目前的软件架构中,不仅存在单独的数据库操作(一条SQL以内,还存在逻辑性的一组操作.而互联网软件系统最少不了的就是对共享资源的操作.比如热闹的集市,抢购的人群对同见商品的抢购由一位售货员来处理 ...

  9. 数学规划求解器lp_solve超详细教程

    前言 最近小编学了运筹学中的单纯形法.于是,很快便按奈不住跳动的心.这不得不让我拿起纸和笔思考着,一个至关重要的问题:如何用单纯形法装一个完备的13? 恰巧,在我坐在图书馆陷入沉思的时候,一位漂亮的小 ...

  10. P4382 [八省联考2018]劈配

    题目链接 题意分析 受到了\(olinr\ \ julao\)的影响 写了匈牙利算法 首先 我们对于每一个人 从高到低枚举志愿 如果当前志愿的老师有剩余的话 那么我们就选 否则的话 我们看看谁的那个志 ...