看到标题能进来的小伙伴,我也就不废话,先推荐一本必买的书《JavaScript高级程序与设计》。今天接着上一篇文章还是分享最基础入门的一些Js的知识。
1、构造函数 和对象
构造函数:可以通过new 关键字 创建一个对象 ,这样的函数 就叫做 构造函数
对象:将一堆信息 组合起来,形成一个对象,方便查找
对象中的属性调用: 对象.属性
对象中的方法调用: 对象.方法
2、数组概念
数组 : 多个数据的集合 , 一般来说这些数据是同一个类型的(js中的数组是可以存放任意类型的)
3、数组的定义
方式一、
var arr = []; 定义一个空数组
var arr = [23,1,343,233,67,78]; 定义一个有6个数的数组
方式二、
var arr = new Array(); 定义一个空数组
var arr = new Array(5); 如果括号中只有一个数值类型的数据,该数值表示数组的长度 定义一个长度为5的数组
var arr = new Array(2,3); 表示数组中含有两个数据
4、数组的取值
通过下标取值,下标必须从0开始 ,最大下标 数组的长度 - 1
数组的长度: 数组名.length
通过for 或 for .. in 取值:
for语法结构:
for( [var] i in 对象 ){
}
for...in特点:
没有循环条件
自动取出下标
下标从0开始,最大下标 数组长度 - 1
下标的类型是string(for...in 是用来遍历 键 )
一般用for ... in 遍历json对象
5、数组的赋值
var arr = [];
arr[0] = 90; 先定义 后赋值
arr.push(45); 通过push方法赋值 向数组的尾部添加一个数
var arr = [1,2,3,4,5]; 定义时直接赋值
var arr = new Array();
通过循环来赋值
6、js数组特点
数组长度不固定
数组可以动态的添加或删除某个元素
数组可以存放任意类型
7、判断一个对象是否是一个数组
typeof 测试数据类型 ,不能确定一个对象是否是一个数组
instanceof 可以通过这个关键字确定某个对象是否是一个数组,如果是数组,返回true,否则返回false
8、数组的操作
push()
用法 :数组名.push(要添加是数) 向数组的尾部添加一个或多个元素
pop()
用法: 数组名.pop() 移出数组中的最后一个元素
shift()
用法 : 数组名.shift() 移出数组中的第一个元素 并返回移除的元素
unshift()
用法: 数组名.unshift(要添加的数) 向数组的首部添加一个或多个元素 并返回数组新的长度值
slice()
用法: 数组名.slice(start,end) 截取数组中从start 到 end处的数据,截取的数据不包括 end处的数值 , 不改变原数组
splice()
用法: 数组名.splice(start,length) 截取数组中从start开始,并指定length长度的数据 , 改变了原数组(删除)
concat()
用法: 数组a.concat(数组b) 把数组b连接到数组a的尾部
join()
用法: 数组名.join("字符") 通过参数字符 将 一个数组 转成 字符串
9、二维数组
var arr = [12,[3,2,4]]
10、值类型和引用类型
栈: 当定义一个变量时,变量会在内存中开辟一块存储空间,如果这个变量的类型属于值类型,这块空间叫做 栈 (一个栈空间 存放一个变量)
值类型: 基本类型
堆: 当定义一个变量时,这个变量中如果存放多个数据,会将这个变量存放在 堆 中。 堆中存放的是 引用类型
引用类型:对象类型(object)
引用类型在赋值时,传递的是 变量的地址,此时这两个变量共享同一个存储空间,所以 “一改全改”
函数的参数的传递: 值传递 地址传递(空间共享,一改全改)
11、数组的冒泡排序
var arr = [34,2,35,6565,88];
原理:相邻的两个数进行比较,大数下沉,小数上浮
12、选择排序
思路:每一轮比较时都会有一个基准值
第一轮 基准值为arr[0] , 用这个基准值和后面的数依次比较,如果这个数大于后面的数,就交换,经过第一轮比较后,能找到最小值;
第二轮 基准值为arr[1] , 同上 , 经过此轮比较后,找到第二个最小值
以此类推
13、简单选择排序
思路:
每一轮都假设一个最小值下标,根据假设的最小值在找真正的最小值,如果假设不成立,就交换这两个值,经过第一轮比较后, 能找到 最小值
14、数组的排序方法 sort
使用:
数组名.sort( 数组名 );
function fun(a,b){
return a-b; // 升序 return b-a 降序
}
[12,45,2,342].sort(fun)