这是我参与8月更文挑战的第7天,活动详情查看:8月更文挑战
☆☆☆ 今天的内容(数组)比较重要, 也是工作中用的最多的内容!! ☆☆☆
持续更新, 可作为初学者的学习路线, 可参考以下, 学习进度也不是特别赶!
用自己的理解, 简单又全面概括基础知识点, 大部分内容为白话文内容, 基础中的基础 方便加深理解!
巩固学习 JavaScript 基础知识, 加深理解记忆, 打牢地基才能筑高楼! 加油
如需更详细了解学习- 推荐查看 MDN-JavaScript 文档, (红宝书/白皮书/
蓝皮书/..)进行学习进阶!
更多阅读: 前文更新回顾
【重学JS】每天学习巩固基础: 【day1】
开始今天的学习吧! 认真对待!!
1、内置对象
系统提供的直接使用的对象
- 数组
Array - 字符串
String - 数学
Math - 日期时间对象
Date - 正则
RegExp
2、对象
对象定义:
将多个信息组合起来 表示一个整体 这样多个信息的组合就称为一个对象
2.2 对象定义方式
var obj = { } json 对象定义形式
-
对象特性 : 属性 方法
-
使用 : 对象.属性 属性没有括号 对象.方法 方法都是有括号
-
当键的值是一个
function时,说明这个键代表的是 对象的方法 -
对象特点 : 对象都可以动态的添加属性和方法 /所有的对象都具有属性和方法
3、构造函数
构造函数 : 可以通过 new 关键字创建出一个对象的函数
4、数组 (重点)
数组就是一个容器 , 存放不同类型的数据
- 如果存对象,就是对象数组;
- 如果存放 字符串,就是字符数组;如果存放数值 数值数组
- 一般 数组中存放的是同类型的数据
定义一维数组 : 由一个下标组成
两种方法:
var arr = [ ];var arr = new Array();构造函数定义方法 Array 是一个构造函数
定义数组后 如果没有值 表示一个空数组
var arr = new Array(5);如果括号中只有一个数值 该数值表示数组的长度
js 数组特点 : 数组的长度不固定 数组可以不连续存放数值
-
没有赋值的数组数据默认是 undefined
-
获取数组长度属性:length
扩展:
- 快速清空数组方式 :
arr = []; 或 arr.length = 0;
操作数组数据 :数组名[下标] 下标从 0 开始 最大下标 arr.length-1
5、js 中的二维数组(了解) 由两个下标组成
二维数组 : 类似表格结构 由行与列组成
定义 (数组中的值是一个一维数组):
var arr = [[2,3],[6,7],[8,90]];
arr[行][列]
6、数组遍历方式 ( 遍历 --- 循环 )
可以使用 for 或 for...in
for...in 用来遍历对象
for( var i in 对象 ){
i 的类型是 string
}
for...in 的特点 :
- 1、没有循环条件
- 2、自动取出下标 下标从 0 开始 到最大下标结束
- 3、下标类型是 string
- 4、for ... in 只能遍历对象
- 5、json 对象 { } 的遍历 只能通过 for..in 遍历
7、判断一个对象是否为一个数组(扩展)
instanceof :
对象 instanceof 构造函数 返回布尔值 如果对象属于该构造函数返回 true,否则返回 false
8、数组的操作方法
-
length : 获取数组长度
技巧 :快速的清空数组 或 快速的改变数组的个数 :
var arr = [19, 2, 3, 4, 5, 6, 7]
arr.length = 0
// 清空数组
arr.length = 1
// 保留数组中的第一个数
push()向数组的尾部添加一个或多个元素 用法 : arr.push(23,34,12); 返回数组新长度值pop()删除数组尾部的数据 一次删一个 用法:arr.pop();没有参数 返回 删除的元素unshift()向数组的头部添加一个或多个元素 用法 :arr.unshift(34)shift()删除数组头部的元素splice()splice(start):表示删除从 start 位置开始的数一直到数组尾部- 一、
arr.splice(start,length)删除从开始位置 指定长度的数据 返回删除的元素 如果不加 length,将 start 位置后面的数据都删除 - 二、
arr.splice( start , length , num 参数 );- 如果 length 是 0,在 start 位置处添加 num 数据 (添加)
- 如果 length 是大于 0, 将 start 位置处的数据先删除,在添加 num 数据(替换)
- 一、
☆☆ 重点 ☆☆: 上面的五个方法 都会改变原数组
下面这几个方法, 了解方法的返回值
slice(start,end)截取从 start 开始处到 end-1 位置处的字符 不会改变原数组 返回截取后的数据join()用法 : arr.join("-") 使用 - 将数组中的数据连接起来 转成字符串 数组转成字符串concat()用法 : arr.concat( brr , crr ) 将两个以上的数组合并成一个新数组 返回合并后的新数组reverse()用法 : arr.reverse() 数组反转 也会改变原数组
9、栈和堆
9.1 栈 :
当定义一个变量时,会在内容中开辟一块存储空间,用来存放该变量的值,这样的存储空间叫做栈
一般栈中 存放的基本类型数据
栈的特点 : 有底无顶 先进后出
9.2 堆 :
堆中可以存放多个值 一般堆中存放的数据类型是 object
值传递和地址传递(复制) :
值传递 :后面变量的改变不会影响到其他变量值的改变(变量的值互不影响)(单向传递)
地址传递 : 变量之间数据的改变会互相影响 (一改全改)(双向传递)
加油, 追梦人
学习就是一个不断进行的过程, 坚持下去, 定有收获!
日积月累, 巩固基础, 早进大厂!
坚持很不容易, 坚持很久更不容易
Calm Down & Carry On!