对象Object
-
对象的分类:
-
内建对象
-
由ES标准中定义的对象,在任何的ES的实现中都可以使用
-
比如:Math String Number Boolean Function Object....
-
-
宿主对象
-
由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
-
比如BOM(浏览器对象) DOM(文档对象)
-
比如 console document
-
-
自定义对象
-
由开发人员自己创建的对象
-
-
-
创建对象
-
构造函数
-
使用new关键字调用的函数,是构造函数constructor
-
var obj = new Object();
-
构造函数是专门用来创建对象的函数
-
在对象中保存的值成为属性
-
向对象添加属性
-
语法:对象.属性名=属性值; || 对象["属性名"] = 属性值
-
-
读取对象中的属性
-
语法:对象.属性名 || 对象["属性名"]
-
-
如果读取对象中没有的属性,不会报错,而会返回Undefined
-
修改对象中的属性值
-
语法:对象.属性名=属性新值;
-
-
删除对象的属性
-
语法:delete 对象.属性名
-
-
-
对象字面量
-
可以在创建对象时,直接指定对象中的属性
-
语法:{属性名:属性值, 属性名:属性值...}
-
对象字面量的属性名可以加引号,也可以不加
-
如果要使用一些特殊的名字,则必须加引号
-
属性名和属性值是一组的名值结构
-
名和值之间使用:连接,多个名值之间使用,隔开
-
-
var obj2 = {name:"Tom",age:18}
-
-
Note
-
属性名
-
对象属性名不强制要求遵守标识符的规范
-
尽量按照标识符的规范去用
-
-
属性值
-
js对象的属性值,可以是任意的数据类型
-
也可以是一个对象
-
-
in运算符
-
通过in可以检查一个对象中是否含有指定的属性名
-
语法:“属性名” in 对象
-
var obj = new Object() obj.name = "Tom" console.log("name" in obj) //true console.log("test" in obj) //false
-
-
-
-
-
基本数据类型和引用数据类型
-
变量都是保存到栈内存中的
-
形式:变量名=变量值
-
基本数据类型的值直接在栈内存中进行存储
-
值与值之间是独立存在的,修改一个变量不会影响其他的变量的值
-
-
对象是保存到堆内存中的
-
每创建一个新的对象,就会在堆内存中开辟出一个新的内存空间
-
变量保存的是对象所对应的内存地址(对象的引用)
-
当通过一个变量修改对象属性时,另一个也会受到影响
-
-
比较
-
当比较两个基本数据类型的值时,就是值的比较
-
而比较两个引用数据类型时,他们比较的是对象的内存地址
-
如果两个对象是一模一样的,但是内存地址不同,结果也返回false
-
-
-
-
-
Date对象
-
在js中使用Date对象来表示一个时间
-
如果直接使用构造函数创建一个Date对象,则会封装为当前代码执行的时间
-
getDate()
-
获取当前对象日期中的几号
-
-
getDay()
-
获取当前对象日期中的星期几
-
返回 0-6的值,0表示周日,1表示周一,6表示周六
-
-
getMonth()
-
获取当前对象日期中的月份
-
返回0~11的值
-
0表示 1月,1表示2月,11表示12月
-
-
getFullYear()
-
获取当前对象日期是几几年
-
-
getTime()
-
获取当前对象日期的时间戳
-
指的是从格林威治标准时间1970年1月1日,0时0分0秒到
-
当前时间花费的毫秒数(ms)
-
-
-
Math对象
-
Math和其他对象不同,他不是一个构造函数
-
他属于一个工具类,不用创建对象,里面封装了数学运算的相关属性和方法
-
圆周率
-
console.log(Math.PI);
-
-
绝对值
-
console.log(Math.abs(-4));
-
-
向上取整
-
console.log(Math.ceil(1.4444));
-
console.log(Math.ceil(1.0444));
-
-
向下取整
-
console.log(Math.floor(1.9444));
-
console.log(Math.floor(1.0444));
-
-
四舍五入
-
console.log(Math.round(1.5444));
-
console.log(Math.round(1.4444));
-
-
生成随机数0-1之间
-
生成一个x-y之间的随机数:console.log(Math.round(Math.random()*(y-x)+x))
-
console.log(Math.random());
-
console.log(Math.random());
-
-
生成一个1-6随机数
-
console.log(Math.round(Math.random()*5+1));
-
-
最大值
-
console.log(Math.max(10,20,5));
-
-
最小值
-
console.log(Math.min(10,20,5));
-
-
平方根
-
console.log(Math.sqrt(4));
-
console.log(Math.sqrt(2));
-
-
幂
-
console.log(Math.pow(2,2));
-
console.log(Math.pow(1,3));
-
console.log(Math.pow(2,3));
-
-
-
-
包装类
-
在js中提供了三个包装类,通过这三个包装类可以将基本数据类型的数据转换为对象
-
String()
-
可以将基本数据类型字符串转换为String对象
-
-
Number()
-
可以将基本数据类型数字转换为Number对象
-
-
Boolen()
-
可以将基本数据类型布尔值转换为Boolean对象
-
-
-
当我们对一些基本数据类型的值去调用属性和方法时,
-
浏览器会临时使用包装类将其转换为对象,然后调用对象的属性和方法
-
-