API

只读:只能读取属性不能修改

数组常见api(10)

pop() 删除并返回数组的最后一个元素。

push()向数组的末尾添加一个或者多个元素,返回新的长度

shift ()删除并返回数组的第一个元素。

unshift ()向数组的开头添加一个或者多个元素,返回新的长度

slice () 从某个已有的数组返回选定的元素。

arr.slice(1,3) 选定的是索引1和2,不包含3 只读

arr当中按照指定的索引截取子数组,索引含头不含尾,不会修改原数组,而是返回一个新数组

arr.slice(2) slice方法只传一个参数,意思就是截取到末尾

arr.slice(-2, -1) slice传递负数,负数代表到数第几个 从倒数第二个数到倒数第一个,含头不含尾。

splice() 删除元素,并向数组添加新元素

向数组删除元素 ,添加元素 ,替换元素。

arr.splice(2) 一个参数 ,把从下标为2开始的后面的数据都删掉,包括2;

arr.splice(2,3) 两个参数 ,从2开始,删除3个数,删除元素里包含开始索引的,包含2;

arr.splice(2, 2, 10, 20, 30) 从第三个参数开始后面可以传任意多个参数,都是替换的值 。

arr.splice(6, 0, 20) 可以把第二个参数写成0,就是添加,可以在任意位置添加元素 注意:在索引为6之前添加的

 var arr = [1,2,3,4,5];
       var res = arr.splice(0,3,5,2,4,2,5)
       console.log(res);    //1,2,3    

删除返回删除的值

sort()对数组的元素进行排序

a-b 升序 b-a 降序

join() 把数组转换成字符串;元素通过制定的分隔符进行分隔。不会修改原数组

concat() 连接两个或更多的数组,返回结果;

并不会修改原数组,得到一个新数组只读

reverse()颠倒数组中元素的顺序。


 

ES5-api新增数组常见方法

2个索引方法:indexOf() 和 lastIndexOf(); 只读

arr.indexOf(2,[3]) 从arr当中[索引为3开始]去找2的索引,如果数组里有多个2,得到的是第一次出现的索引,如果值不存在,那么得到-1

arr.lastIndexOf(2) 从arr当中去找2的索引,如果数组里有多个2,得到的是最后一次出现的索引, 如果值不存在,那么得到-1

5个迭代方法:forEach()、map()、filter()、some()、every();

  arr.forEach(function (item, index,arr) {
    // item是值,index是索引,arr是数组本身
    console.log(item, index,arr)
  })

map也是用来遍历数组,遍历的同时需要给一个返回值所有的返回值会放进一个新的数组,每一次都要写返回值,否则新的数组里会有undefined

var arr1 = arr.map(function (item ,index,arr) {
     // item是值,index是索引,arr是原数组
     console.log(item, index,arr)
     return item*2
  })
   
   
     var arr2 = arr.map(function (item, index) {
     if (index%2) {
       return item * (1+0.3)
    }
     return item
  })

fliter 过滤每一次遍历的时候都要返回一个条件(布尔值),当这个条件得结果为true的时候,当前值就会被保留,否则就被过滤掉,最终用一个新的数组来存结果 ,如果不写return,默认返回值是undefined,会隐式转换为false,相当于每次都返回的false

 var arr1 = arr.filter(function (item, index) {
     console.log(item, index)
     return item > 4
  })

some的最终结果是一个布尔值,每一次遍历的时候返回一个条件,只要在遍历过程中有一条数据满足条件(在所有的返回值当中只要有一个true就是true),整个some的结果就是true,在遍历的过程中只要发现了一个true就停止遍历

var is = arr.some(function (item, index) {
        console.log(item, index)
        return item > 10
      })

every 必须每一次遍历返回的条件都是true,结果才为true,否则就是false(遍历过程中只要有一个是false就是false),every的最终结果为布尔值,只要任意一个不满足条件,遍历就结束,最终得到false

 var is = arr.every(function (item, index) {
     console.log(item, index)
     return item % 2 === 0
  })

2个归并方法:reduce()、reduceRight();

注意:function后加逗号加值,这个值可以是任意的,不会影响索引的值,只要加了就会从默认的1变为0,则curr也就会从下标为0开始,遍历全部;

这个值修饰的是res,值是多少,res的第一个值就是多少,不加值的话,res默认为arr[1]

reduce有两个参数,第一个参数是函数,第二个参数可选的默认值,在后面写上一个默认值,循环次数就跟数组长度相等,res默认值就是1,curr从arr[0]开始

var arr = [3,5,2,6,2]
var sum = arr.reduce(function (res, curr, index) {
     console.log(res, curr, index)  //1 3 0
     return res *curr
  }, 1)

reduce是从左往右归并,reduceRight从右往左

var arr = [
    [1,2,3],
    [4,5,6],
    [7,8,9]
  ]
    var arr1 = arr.reduceRight(function (res, curr) {
     return res.concat(curr)
  }, [])

   console.log(arr1) // [7,8,9,4,5,6,1,2,3]

 

字符串 不常用api

字符串的比较规则: 按照unicode 码进行比较的 (优先比较首字符的unicode)

charCodeAt()返回在指定的位置的字符的 Unicode 编码。

fromCharCode()从字符编码创建一个字符串。

 var str = 'hello string'
// 返回str[1]字符的编码,字母e的编码是101
console.log(str.charCodeAt(1)) // 101 //str
// 传一个编码,得到字符
console.log(String.fromCharCode(102)) // f //String

encodeURI(str) 字符串转换 decodeURI(code) 字节转换

console.log(encodeURI('张宇'));//%E5%BC%A0%E5%AE%87
console.log(decodeURI('%E5%BC%A0%E5%AE%87'));//张宇

 

字符串常见API

不常见 replace 不修改原数组 只读

字符串可以理解为,只要是只读的数组中拥有的属性和方法,字符串都是可以用的 字符串可以有lenth 可以通过下标[]访问 (for循环)slice......

字符串特有的api

str.charAt(下标) 字符串对应下标的字符。

String.fromCharCode() 传入指定的unicode编码返回这个 unicode 所对应的字符

Remember

str.charAt(下标) 字符串对应下标的字符。

indexOf() 检索字符串,返回下标。 查找字符串第一次出现的位置 第二个参数 从第几个开始找 ,找到返回下标,找不到返回-1

lastIndexOf()从后向前搜索字符串。 查找字符串最后一次出现的位置,找到返回下标,找不到返回-1

substring(starti[,endi+1]) 截取子字符串 不修改原数组 只读

substr(starti[,n]) starti从哪开始截取 n 截取几个 只读 不修改原数组

 var str = 'szykadkaabsj'
      console.log(str.substring(1,3));//zy
      console.log(str.substr(1,2));//zy

split("切割符") 把字符串分割为字符串数组 切割符:以什么为界限 切割 不修改原数组 只读

      var str = 'hello world';
     var arr = str.split(); // "hello world"
     var arr1 = str.split(' ');// "hello", "world"
     var arr2 = str.split('') // "h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"

toUpperCase() 把字符串转换为大写。 str.toUpperCase() toLowerCase() 把字符串转换为小写。 str.toLowerCase()

slice()提取字符串的片断,并在新的字符串中返回被提取的部分。

var str1 = str.slice(2, 5) 含头不含尾


 

Math常用api

Math.random() 随机产生[0,1) 一个数字

固定套路 随机产生 min 和 max 之间的随机整数 Math.floor(Math.random()*(max-min)+min);

Math.floor(num) 向下取整

Math.ceil(num) 向上取整

Math.round(num) 把数四舍五入为最接近的整数。

Math.PI π的值

  console.log(Math.PI)   //3.14159265541612
//Math对象上的属性都是常量,不是变量,不能被修改
Math.PI = 3.14
   console.log(Math.PI)  //3.1415926542641641

   var myPI = Math.PI.toFixed(3)  
   console.log(myPI)    //3.142

Math.abs(num) 绝对值

Math.max(num1,num2,num3...) 取最大值 Math.min(num1,num2,num3) 取最小值 Math.pow(a,n) a是底数 n 指数 Math.sqrt(n); 开平方


 

日期对象

日期对象创建 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数(时间戳

var date = new Date(); //默认是 系统 的当前日期

创建自定义的日期

var date1 = new Date(2008, 2, 1, 8, 2, 3) //2008年 3月1号8点2分3秒

时间戳 1970年1月1日至今的毫秒数 日期对象. var date = new Date(时间戳)

Date.now() 获取当前系统时间的时间戳 console.log(Date.now());

日期对象的 api toString() 将日期对象转换成字符串 toLocaleString() 将日期对象 转换 成 当地日期格式的字符串 toLocaleDateString() 将日期对象 转换 成 当地日期格式的字符串 只保留日期 没有时间 toLocaleTimeString() 将日期对象 转换 成 当地日期格式的字符串 只保留时间 没有日期 getTime() 获取日期对象 的时间戳

以下用的比较多

get系列API

getFullYear() 返回年

getMonth()返回月份0--11

getDate()返回某一天

getDay()返回星期0-6

getHours()返回小时

getMinutes()返回分钟

getSeconds()返回秒

getMilliseconds() 获取当前日期的毫秒(一般用不到)1秒===1000毫秒

set系列API

setFullYear()设置年份

setMonth()设置月

setDate()设置天

setHours()设置小时

setMinutes()设置分钟

setSeconds()设置秒

setTime()使用毫秒的形式设置时间对象

date: 可选,表示月中某一天的数值。如果不填,取系统当日 用本地时间表示。介于 1 ~ 31 之间: 0 为上个月最后一天 -1 为上个月最后一天之前的天数 如果当月有31天:32 为下个月的第一天 如果当月有30天: 32 为下一个月的第二天

例:现在时间:13:11:43 var date = new Date(2012, 2, 15, 13, 11, 43);2012年3月15日 13:11:43

date.setFullYear(2013, 5);2013年6月15日 13:11:43

date.setFullYear(2012, 20, 5);2013年9月5日 13:11:43

原文地址:https://www.cnblogs.com/lilamisu/p/13050244.html