基本类型与引用类型的区别
基本类型是保存在栈内存中的简单数据段,大小固定。
引用类型是保存在堆内存中的对象,变量中保存的是指针,指向内存中另一个位置,大小不固定。
基本类型值有哪些?引用类型值有哪些?
基本类型值:undefined,null,number,string,boolean。
引用类型值:object,array,date,regexp,function,基本包装类型。
Object类型
创建对象的常用两种方法
- new Object(),借用原生构造函数;
- 通过对象字面量
推荐使用对象字面量方式创建对象,字面量初始化直接赋值,效率更高;代码量少,给人一种封装数据的感觉。
访问对象属性和方法的两种常用方法
- 点表示法 .
- 方括号表示法 []
对比
点表示法使代码更严谨,方便,少写好几个字符。是主流的写法。
方括号表示法主要优点属性可以是变量,关键字,保留字,错误的字符。
Array类型
创建数组的两种常见方式
- 调用原生构造函数(Array())
- 使用数组字面量
优缺点对比
和对象的两种方式一样
创建一个包含只含数字20的数组
- new Array(20)的解决方案
new Array(20)创建的是一个长度为20的数组
var arr = new Array("20");
get20 = parseInt(arr[0]);
- var get20 = [20];
检测数组方式的对比(选讲)
- isArray()
- 其他
数组各种方法
转换方法
tolacaleString() // 转换为本地字符串,时间类型比较常用
toString() // 转为传统字符串,常用
value of() // 输出本身的值
join() // 以不同的分隔符来分割数组
栈方法
分析栈的特性,后进先出push() // 添加到数组末尾,返回数组长度
pop() // 删除并返回数组最后一项
队列方法
与栈方法相反,先进先出shift() // 删除并返回数组第一项
unshift() // 在数组前端添加任意项并返回新数组的长度
重排序方法
reverse() // 反转
sort() // 按照字符编码的顺序从小到大排序,想按照数字顺序方法可以借比较函数
把比较函数的例子列几个出来
操作方法
concat() // 创建一个数组的副本,并把参数加到副本最后
slice() // 返回指定位置到数组末尾的所有项,不会影响原数组
splice() // 最强大的方法,删除,插入,替换
位置方法
indexOf()
lastIndexOf()
迭代方法
解释迭代是什么意思? 按顺序访问列表(数组)中每一项every()
filter()
forEach()
map()
some()
归并方法
reduce()
-
reduceRight()
- 两个方法都接受两个参数,第一个参数为回调函数,回掉函数接受四个参数:
前一个值,当前值,当前项的索引,目前数组对象。 - 有兼容性
- 两个方法都接受两个参数,第一个参数为回调函数,回掉函数接受四个参数:
Date类型
直接写一个获取时间的例子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="time"></div>
<script type="text/javascript">
(function time() {
var oTime = document.getElementById('time');
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth() + 1;
var day = now.getDate();
var hour = now.getHours();
var minute = now.getMinutes();
var second = now.getSeconds();
var timer = null;
oTime.innerHTML = year+"年"+month+"月"+day+"日"+hour+"点"+minute+"分"+second+"秒";
timer = setInterval(time,1000);
function check(t) {
if(t < 10) {
return "0"+t;
}
}
})();
</script>
</body>
</html>
RegExp类型
创建正则表达式的两种方式
- var reg1 = new RegExp("pattern","flags") // 借用原生正则构造函数
- var reg2 = / pattern / flags; // 正则字面量
优先使用字面量,使用正则字面量的时候需要对特殊字符进行转义(\),
function类型
函数的内部属性 this
函数运行时,会自动生成一个内部属性(this指针),代表调用当前函数的对象;
function getThis(){
console.log(this);
}
getThis();