JavaScript第7天

数组API的学习
  1. 栈和队列:添加元素和删除元素的新方式

  1. 栈:其实就是数组,只不过是一端封闭了,只能从另一端进出

  1. 例如:电梯、旅游巴士...优先使用最新的数据

  1. 如何使用:

  1. 开头进:arr.unshift(新值,...);

  1. 添加元素的新方式,向前添加

  1. 缺点:导致其余元素的下标都会发生变化

  1. 开头出:var frist=arr.shift();

  1. 删除元素的新方式,向前删除

  1. 缺点:导致其余元素的下标都会发生变化

  1. 结尾进:arr.push(新值,...);

添加元素的新方式,向后添加

  1. 结尾出:var last=arr.pop();

删除元素的新方式,向后删除

  1. 队列:其实就是数组,只不过是一端进,从另一端出

  1. 开头进:arr.unshift(新值,..);

  1. 结尾出:var last=arr.pop();

  1. 结尾进:arr.push(新值,...);

  1. 开头出:var first=arr.shift();

  1. 扩展:

  1. 定时器:

  1. 开启:

timer=setInterval(function(){

操作;

},间隔毫秒数)

  1. 停止:

clearInterval(timer)

  1. 鼠标移入:onmouseover

  1. 鼠标移出:onmouseout

  1. 二维数组:数组的元素,又引用着另一个数组

  1. 在一个数组,再次细分每个类

  1. 创建:

var arr=[[值,...],...]

  1. 访问

arr[行下标][列下标];

  1. 特殊:

  1. 列下标越界,返回undefined

  1. 行下标越界,得到一个报错,因为行下标已经得到一个undefined,undefined没资格再加[]做操作

  1. 遍历二维数组:必然两层循环,外层控制行,内层控制列

for (var r=0;r<arr.length;r++){

for(var c=0;c<arr[r].length;c++){

console.log(arr[r][c]);

}

}

  1. ES5提供6个API

  1. 判断:2个

  1. every:

  1. 每一个

  1. 要求所有元素都满足条件才会为true,只要一个不满足则为flase,非常类似于&&

var bool=arr.every(function(val,i,arr){

//  val——当前的值

//  i——当前值的下标

//  arr——当前数组本身

return 判断条件;

})

  1. some

  1. 有一些

  1. 要求只要一个满足条件会为true,所有元素不满足则为flase,非常类似于||

var bool=arr.some(function(val,i,arr){

  1. return 判断条件;

})

  1. 遍历:

  1. 拿到数组中的每个元素做相同或相似的操作

  1. farEach

  1. 直接修改原数组

arr.forEach(function(val,i,arr){

操作;

})

  1. map

  1. 不修改原数组返回一个新数组

var newArr=arr.map(function(val,i,arr){

操作;

})

  1. 过滤:

  1. 筛选出你需要的部分,但是不一样的是原数组不会发生变化

var subArr=arr.fiter(function(val,i,arr){

return 判断条件;

})

  1. 汇总

var result=arr.reduce(function(prev,val,i,arr){

return prev+val;

},基础值)

  1. 以上6个API都是简化for循环操作

  1. ES6箭头函数:

  1. 简化一切匿名回调函数

  1. 固定公式:

function去掉

()和{}之间添加=>

如果形参只有一个,那么()可以省略

如果函数体只有一句话,那么{}也可以省略

如果函数体只有一句话并且还是return,那么return和{}都可以省略

  1. String概念

  1. 概念:

  1. 多个字符组成的【只读】字符【数组】

  1. 只读:所有的字符串的API都不会修改原字符串,都会返回新的字符串

  1. 相同点:

  1. 字符串的个数:str.length;

  1. 获取字符串中的某个字符:str[i];

  1. 遍历字符串

  1. 所有数组不修改原数组的API,字符串可以使用(concat、slice)

  1. 不同点:

所有数组不修改原数组的API,字符串都不可以使用;比如排序只有数组可以使用,但是字符串也有很多属于自己的API

  1. 引用/对象类型

String(字符串) Number(数字) Boolean(布尔)   =>包装类型

Array(数组) Function(函数) Date(日期) Math(数学) RegExp(正则:验证)

Error(错误)

Object(面向对象开发方式)

Global(全局对象)——只有在游览器中被window对象代替,自然保存着全局变量和全局函数,只不过window可以省略不写;学习node.js这个后端语言,在node.js中全局对象叫做geolexp

  1. 包装类型:

  1. 专门用于将原始类型的值封装为一个引用类型的对象

  1. 为什么:

原始类型的值原本没有任何属性和方法,意味着原始类型本身不支持去做任何操作,但是字符串经常会被程序员所操作,为了方便程序员就为这三个提供了包装类型(提供属性和方法)

  1. 何时使用:

只要你试图使用原始类型的变量或方法的时候,自动包装

  1. 何时释放:

方法调用完毕后,自动释放包装类型,变回原始类型

  1. 为什么null和undefined不能使用

因为没有给他们提供包装类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值