引用类型的值(对象)是引用类型的一个实例,在ES中引用类型是一种数据结构,将数据和功能组织在一起。引用类型有时候也被称之为对象定义,因为他们描述的是一类对象所具有的属性和方法。
Object类型
两种创建方式
1 new Object()
var person = new Object();
person.name = "jing";
person,age = 20;
2 对象字面量
var person = {
name:"jing",
age:20
}
属性的访问两种方式,1-person.name,
2-person['name']
,后一种方式的好处可以用来在代码中拼接属性名。
Array
创建方式
// 使用new Array() 构造函数
var arr1 = new Array();
var arr2 = new Array(20); // 长度为20
var arr3 = new Array("red","blue","yellow");
// 数组字面量表示法
var arr4 = ["red","blue","yellow"];
检测数组方法
arr instanceof Array
,页面多个框架引起的多个全局执行环境问题。怎么理解呢(?)- ES5引入的
Array.isArray(arr)
解决上面的问题 #### Array的常用方法 - 转换方法(所有对象都具有),
toString()/toLocalString()/ValueOf()
- 栈方法,
push()
- 队列方法,
shift()
unshift()-添加元素
- 重排序,
reverse()
和sort()
(?) - 操作方法,
concat()
slice()
和splice()-删除/插入/替换 - 位置方法,
indexOf()
lastIndexOf()
- 迭代方法,
every()/filter()/forEach()/map()/some()
Date
创建方法
var date1 = new Date(args);
常见使用方法
- 转换方法,
toString()/toLocalString()/ValueOf()
- 日期格式化方法,
toDateString()
toTimeString()
toLocalDateString()
toLocalTimeString()
toUTCString()
- 日期时间组件方法,
getTime/Date/Year/Month()...
setTime/Date/Year/Month()...
get和set 获取时间,设置时间
regExp
regExp是ES支持正则表达式的一个接口
正则表达式,用得好可以少写很多逻辑代码
Function
- 函数声明和函数表达式,解析器在加载数据时候,会对函数声明进行函数声明提升
- 作为值得函数,函数可以作为参数传入到另一函数中的使用方法
- 内部属性和方法
arguments
,this
,.length
,.prototype
apply()
call()
- 没有重载
Boolean
var falseObj = new Boolean(false);
var falseValue = false;
console.log(falseObj && true); // true
console.log(falseValue && true); // false
console.log(typeof falseObj); // Object
console.log(typeof falseValue); // boolean
console.log(falseObj instanceof Boolean); // true
console.log(falseValue instanceof Boolean) // false
- Boolean类型是与布尔值对应的引用类型
- 在布尔表达式中使用布尔对象
Number
与数字对应的引用类型,几个好用的方法
var num = 10;
console.log(num.toString(2));
console.log(num.toString(8)); // 加入参数转 显示其他进制
console.log(num.toFixed(2)); // 保留几位小数
String
String是字符串的对象包装类型
一些常用的方法如下
charAt()/charCodeAt()
找到第几位字符slice()/substr()/substring()
截取 字符串,注意差别indexOf()/lastIndexOf()
找到位置trim()
ES5引入的,创建一个字符串副本,删除前后的空格返回toUpperCase()/toLowerCase()
大小写转换- 模式匹配本质上是调用了
RegExp
的exec()
,有match()/search()/replace()/split()
localeCompare()
比较两个字符串str.fromCodeAt(104,101,108,108,101) //hello
传入多个字符编码转换成一个字符串
单体内置对象
Global对象
- enCodeURI()/enCodeURIComponent()
URI编码方法
- eval()
强大到直接执行语句
- window
对象
Math对象
- min()/max()
- ceil()/floor()/round()
向上向下标准舍入
- random()
返回介于0和1之间的随机数
- 其他abs/sqrt/...