1.数组的创建:字面量方式,构造函数方式
var arr1 = [1, 2, 3];
var arr2 = new Array(1, 2, 3);
console.log(arr1, arr2)
2.for in适用于不确定数组个数时,for适用于确定循环次数时
var arr3 = [2, 34, 5, 87, 1, 31, 7];
for (var i in arr3) {
console.log(arr3[i]);
}
2.2.使用for in 循环对象
var obj = {
name: "John",
age: 18
};
for (var j in obj) {
console.log(obj[j]);
}
3.冒泡排序和选择排序
3.1.冒泡排序:相邻元素两两比较,大的放后面
逻辑和过程
1.相邻元素两两比较,大的放后面
2.第一轮比较结果是最后面的数是最大数
3.重复比较数组中没排好序的剩下元素(前面的),直到没有要排序的元素
例子:
var arr5 = [1, 4, 3, 7, 9, 2, 5];
//第一次循环
// for (var i = 0; i < arr5.length; i++) {
// if (arr5[i] > arr5[i + 1]) {
// var tmp = arr5[i];
// arr5[i] = arr5[i + 1];
// arr5[i + 1] = tmp;
// }
// }
for (var j = 0; j < arr5.length; j++) {
for (var i = 0; i < arr5.length - j; i++) {
if (arr5[i] > arr5[i + 1]) {
var tmp = arr5[i];
arr5[i] = arr5[i + 1];
arr5[i + 1] = tmp;
}
}
}
for (var i in arr5) {
console.log("arr5 " + arr5[i]);
}
3.2.选择排序:第一个元素与其余所有元素对比,小的放前面
逻辑和过程
1.第一个元素与其余所有元素对比,小的放前面
2.第一轮比较的结果是最小值放在最前面
3.重复比较余下元素,直到没有要排序的元素
例子:
var arr6 = [1, 4, 3, 7, 9, 2, 5];
//第一次循环
// for (var i = 0; i < arr6.length; i++) {
// if (arr6[0] > arr6[i]) {
// var tmp = arr6[0];
// arr6[0] = arr6[i];
// arr6[i] = tmp;
// }
// }
for (var i = 0; i < arr6.length - 1; i++) {
for (var j = i + 1; j < arr6.length; j++) {
if (arr6[i] > arr6[j]) {
var tmp = arr6[j];
arr6[j] = arr6[i];
arr6[i] = tmp;
}
}
}
for (var i in arr6) {
console.log("arr6 " + arr6[i]);
}
4.栈和堆
4.1.栈stack
栈主要是用于储存各种基本类型的变量(Boolean、Number、String、Undefined、Null);
排列上栈内存像是线性排列的空间
优点是读取速度快,数据可以共享,缺点是数据大小和生存周期是固定的
4.2.堆heap
堆主要是存放引用类型(Function,Array,Object),比如多个值构成的对象;
堆内存动态分配,大小不固定也不会主动释放;
实际上存放的不是变量本身,而是指向该对象的指针;
4.3.栈和堆的关系
栈内存中放的是堆内存中保存的对象对应的指针,每次调用对象都是栈中指针找到堆中对象的位置
5.对象的创建
//字面量创建
var obj3 = {
name: "scott",
age: 22
};
//构造函数创建
var obj4 = new Object({
name: "susan",
age: 16
});
6.对象属性的调用
6.1.对象名.属性名
console.log(obj3.name);
6.2.对象名[属性字符串]
console.log(obj4["name"]);
二者的区别:当属性名是一个字符串存储在变量中的时候,只能使用关联数组的方式。
7.json表示对象的方法
7.1.什么是json?
json是独立的语言
json是用于存储和传输数据的格式
通常用于服务端想网页传输数据
它是一种高效的数据存储格式,其结构蚌埠对象一样(都是键值对)
7.2.json的语法规则
1.数据为键值对
2.数据之间用逗号隔开
3.大括号保存对象
4.方括号保存数组
5.json中的键也要用引号
比如:
var str=‘{“name“:”Tom”,“age:18”}’;
这是一个JSON字符串的正确,typeof(str)的结果是一个string
json对象例子:
var json_str1 = {
"name": "张三",
"son": ["张小牛", "张小羊"]
};
console.log(json_str1.son);
var json_stu = [{
"name": "小李",
"mark": 99
}, {
"name": "小王",
"mark": 68
}, {
"name": "小孙",
"mark": 72
}, ];
console.log(json_stu);
/*json是计算机语言中的通用语言,是计算机各种语言之间数据沟通的桥梁*/
json对象成员的使用
var demo = {
"name": "李四",
"say": function() {
alert("你瞅啥?");
}
};
json字符串和对象的互相转换
1.JSON.stringify(),将一个对象转换成JSON字符串
例子:
var obj = {
name: "tom",
age: 18
};
//JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串
var str = JSON.stringify(obj); //对象-->json字符串
console.log(obj); //输出对象
console.log(typeof(str), str); //输出json字符串,类型是string
2.JSON.parse(),将一个JSON字符串转换成对象
例子:
//一个json字符串的正确格式(花括号外面记得包一层单引号!)
var str = '{"name": "tom","age": 18 }';
var obj = JSON.parse(str);//json字符串-->对象
console.log(str, obj, typeof(str), typeof(obj));