array.join() // 将数组的值拼接成字符串。
var arr = [1,2,3,4,5]
arr.join() // 不传参数,默认按【,】进行拼接
arr.join("-") // 参数是字符串类型 按【-】进行拼接
数组的增删操作
array.push(value,[value[,...]]) //将一个或多个元素添加到数组的结尾,并返回新的长度。
array.pop() //从数组中删除最后一个元素,并返回该元素的值,改变了数组的长度
array.unshift(value,[value[,...]]) //将一个或多个元素添加到数组的开头,并返回新的长度。
array.shift() //从数组中删除第一个元素,并返回该元素的值,改变了数组的长度
数组的翻转与排序
array.reverse() // 翻转数组,返回翻转过的数组
array.sort() // 默认排序顺序是根据字符串Unicode码点,比如如果是数字的话,排序结果是10小于2,因为比较的是第一位
var arr = [1,3,10,2,4,40,5]
arr.sort() // [1, 10, 2, 3, 4, 40, 5]
// sort方法可以传递一个函数作为参数,这个参数用来控制数组如何进行排序
var arr = [1,2,10,4,40,5]
arr.sort(function(a,b)
return a-b //按照正序
return b-a //按照倒序
})
数组的拼接与截取
concat:数组合并,不会影响原来的数组,会返回一个新数组。
var arr = [1,2,3]
var arr1 = ["a","b","c"]
var newArray = arr.concat(arr1) //[1,2,3,"a","b","c"]
slice:复制数组的一部分到一个新数组,并返回这个新数组,原来的数组不受影响,包含头,不包含尾
var newArray = array.slice(begin, end)
var arr = [1,2,3,4,5]
arr.slice(0,3) //[1,2,3]
arr.slice(-3,-1) //[3,4]
splice: 以新元素来替换旧元素,以此来修改数组的内容,返回被替换的内容,原数组被改变
start:开始位置 deleteCount:删除的个数 items:替换的内容
array.splice(start, deleteCount, [items[,items...])
var arr = [1,2,3,4,5]
var newArray = arr.splice(0,3,"a","b","c","d")
console.log(newArray) //[1, 2, 3]
console.log(arr) // ["a", "b", "c", "d", 4, 5]
数组查找元素
indexOf方法用来查找数组中某个元素第一次出现的位置,如果找不到,返回-1
array.indexOf(search, [fromIndex])
lastIndexOf()从后面开始查找数组中元素第一次出现位置,如果找不到,返回-1
array.lastIndexOf(search, [fromIndex])
链接:https://www.jianshu.com/p/5d4df649cca5
静态方法属于整个类所有,因此调用它不用实例化,可以直接调用------ 类.静态方法() ====>Array.from()/Array of(),Object.is(),Math.ceil().....,不难发现这些 静态方法都是类作为调用对象使用的
实例方法必须先实例化,创建一个对象,才能进行调用------ 对象.实例方法()
①Object.is()
用来比较两个值是 否严格相等 ,与严格比较运算符(===)的行为基本一致。
②Object.assign()
用于对象的 合并 ,将多个对象的所有可枚举属性复制到目标对象。
newObject:目标对象
object1,object2,object3…:源对象
添加属性
添加方法
③Object.keys()
返回值为对象的所有属性名组成的数组
④Object.values()
返回值为对象的所有值组成的数组
⑤Object.entries()
成员是参数对象自身的(不含继承的)所有可遍历属性的 键值对数组 。
①Array.from()
用于将两类对象转化为真正的数组: 类数组对象,和可遍历的对象
②Array.isArray()
用于判断一个对象是否为数组,如果是返回true,否则返回false
③Array.of()
用于将一组 数据 装进一个 数组 中。
Array() // [ ]
Array(7) // [ , , , , , , ] 相当于数组长度为7
Array(1, 2, 3) // [1, 2, 3]
Array.of() // [ ]
Array.of(7) // [7] 这里写7那就是数组中有一个7
Array.of(1, 2, 3) // [1, 2, 3]
Array.of() 方法不存在 Array() 由于参数个数不同而导致的重载,它的行为很稳定,所以一般用前者代替后者。
①Number.isFinite(), Number.isNaN()
Number.isFinite()用来检查一个 数值 是否为有限的(finite)
Number.isNaN()用来检查一个值是否为NaN 。
Number.isFinite()对于非数值一律返回false, Number.isNaN()只有对于NaN才返回true,非NaN一律返回false。
①Math.trunc()
Math.trunc方法用于 去除一个数的小数部分 , 返回整数部分。
②Math.sign()
Math.sign方法用来判断一个数到底是正数、负数、还是零。 对于非数值,会先将其转换为数值 。
它会返回五种值。
参数为正数,返回+1;
参数为负数,返回-1;
参数为 0,返回0;
参数为-0,返回-0
其他值,返回NaN。
1)PI 取圆周率
2)abs() 取绝对值
3)ceil() 向上取整
4)floor() 向下取整
5)round() 四舍五入
6)max() 取最大值
7)min() 取最小值
8)pow() 取X的y次幂
9)random() 取随机数 >=0 <1
js数组遍历某个值求和
一、增
1、push()
可接收任意数量的参数,把它们逐个添加至数组末尾,并返回修改后数组的长度。例如:
2、unshift()
该方法与push()类似,也可接收任意数量的参数,只不过是将参数逐个添加至数组前端而已,同样返回新数组长度。咱们接着上面的例子:
3、concat()
该方法与push()方法有点类似,同样是将元素添加至数组末尾,只不过这个数组已经不是原来的那个数组了,而是其副本,所以concat()操作数组后会返回一个新的数组。具体用法如下:
① 不传参数,返回当前数组副本
② 传递一或多个数组,则该方法会将这些数组中的每一项都添加到结果数组中
③ 传递非数组参数,这些参数就会被直接添加到结果数组的末尾
继续接着上面的栗子:
例子中一目了然,原数组保持不变,新数组后面添加了4、5、6三个元素。
4、splice()
前面的三个方法都具有很大局限性,因为不是添加到数组前就是数组后,而splice()就不一样了,它非常灵活和强大。灵活是因为它可以添加元素到数组的任意位置,强大是因为它除了可以添加元素之外还具有删除和替换元素的功能(这个后面会陆续讲到)。
splice()可以向数组指定位置添加任意数量的元素,需要传入至少3个参数: 起始位置、0(要删除的元素个数)和要添加的元素。
依然接着上面的例子继续:
可以看出,splice()与push()和unshift()一样是直接在原数组上修改的。
二、删
1、pop()
与push()方法配合使用可以构成后进先出的栈,该方法可从数组末尾删除最后一项并返回该项。
接着上例:
2、shift()
与push()方法配合使用可以构成先进先出的队列,该方法可删除数组第一项并返回该项。
继续接着上例:
3、slice()
定义和用法
slice() 方法以新的数组对象,返回数组中被选中的元素。
slice() 方法选择从给定的 start 参数开始的元素,并在给定的 end 参数处结束,但不包括。
注释:slice() 方法不会改变原始数组。
该方法同concat()一样是返回一个新数组,不会影响原数组,只不过slice()是用来裁剪数组的,返回裁剪下来的数组,具体用法如下:
4、splice()
好,继续讲这个“万能”的方法。
上面讲到,该方法在添加数组元素的时候需要传入3个以上参数,而其中第2个参数就是用于指定要删除元素的个数的,那时我们传的是数字0。那么,如果单单只需删除元素,我们就只需给splice()传入两个参数,第1个参数用于指定要删除的第一项的位置,第2个参数用于指定要删除元素的个数。
继续上例~~
从索引项为2的位置开始删除4个元素,所以结果为 [-1, 0, 1, 2]。
三、改
这个其实最灵活的方式就是直接使用splice()这个强大的方法了,其实通过以上对该方法的了解,我们大致就能知道使用该方法修改数组元素的基本原理。
原理很简单,就是向指定位置插入任意数量的元素,且同时删除任意数量的元素。
依然继续上例~~
四、查
indexOf()和lastIndexOf()
这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中,indexOf()从数组的开头(位置0)开始向后查找,lastIndexOf()方法则从数组的末尾开始向前查找。
例如:
当找不到该元素时,返回 -1 ,lastIndexOf()方法同理。
1 数据类型
<script>
2 引用数据类型
object 对象类型
3 number 数字类型
包含所有的数字(整数,浮点数,正数,负数,极大极小数),Infinity(分母为零),NaN(not a number)
4 string 字符串类型
引号包含的任意文本,单双引号都可以
输出展示
2 比较运算符
<script>
/*
1 比较运算符
比较两个值的大小 返回一个布尔值(true 或 false)
> < >= <= == != === !==
== 等于,只判断数值
===全等,绝对等于,即判断数据类型也判断数值
!= == 取反
!== ===取反
console.log(undefined == null)//true 都没有值
console.log(undefined === null)//false 数据类型不同undefined object
console.log(NaN == NaN)//false
console.log(NaN === NaN)//false
console.log(NaN != NaN)//true
console.log(NaN !== NaN)//true
/
</script>
3 逻辑运算符
<script>
/
2 逻辑运算符
连接多个表达式,返回一个布尔值(true 或 false)
&& 逻辑与 并且所有的表达式都为true,结果才为true,有一个为false结果就为false
|| 逻辑或 或者所有的表达式都为false,结果才为false,有一个为true结果就为true
! 逻辑非 取反表达式为true取反就为true,反之亦然
注意: 逻辑与的优先级大于逻辑或
*/
</script>
逻辑运算符演示
输出到控制台的结果
4 赋值运算符
<script>
/*
3 赋值运算符
= 等号右边的值赋值给左边
+= x += y x = x + y 下同
-=
*=
/=
%= 要的是余数
*/
</script>
<script>
x = 7
y = 3
console.log(x/=y)
</script>
5 算术运算符
<script>
/*
算术运算符
+ - * / %(取余,取模) ++(自增) --(自减)
%(取余,取模) 应用 判断奇偶数、倍数
++ 相当于自己加1 x++ 相当于 x = x + 1
-- 相当于自己加1 x-- 相当于 x = x - 1
+运算碰到字符串,直接进行字符串拼接,返回string类型
- * / %遇到字符串,都转换成number类型进行计算,如果不能转换成数字,则返回NaN,数据类型未number
true转换1 false转换为0
++ --
前++和后++,对于变量自己来说没有区别都是+1
前++ 先赋值 在加1
后++ 先加1 再赋值
/
</script>
<script>
/ var x = 5//number
var y = 2//number
comsole.log(x + y)//7
comsole.log(x - y)//3
comsole.log(x * y)//10
comsole.log(x / y)//2.5
comsole.log(x % y)//1 */