目录
-
console.time()计时器
-
console.time()函数
-
可以用来开启一个计时器
-
需要传入一个字符串作为参数,这个字符串会作为该计时器的标识(名字)
-
-
console.timeEnd()函数
-
可以用来关闭一个计时器
-
需要传入一个字符串(已有计时器的标识),用来指定需要停止的计时器
-
-
单位:ms
-
console.time('name')
代码块
console.timeEnd('name')
-
对象
-
在JS中的数据类型有String、Number、Boolean、Null、Undefined、Object。前五种是基本数据类型,只要不是这五种,那就是Object对象
-
对象是一种复合的数据类型,在对象中可以保存多个不同的数据类型的属性
-
对象的分类:
-
内建对象:
-
由ES标准中定义的对象,在任何的ES的实现中都可以使用
-
如:Math、String、Number
-
-
宿主对象:
-
由JS的运行环境提供的对象,目前来讲主要是指由浏览器提供的对象
-
如:BOM、DOM
-
-
自定义对象:
-
由开发人员创建的对象
-
-
-
创建对象
-
使用new关键字调用的函数,是构造函数(constructor)
-
构造函数专门用来创建对象
-
-
// 使用构造函数创建
var name1 = new Object();
// 使用对象字面量创建({})
var name2 = {};
var name3 = { 属性名:属性值, 属性名:属性值, …… };
// 使用工厂模式创建(使用工厂模式创建的对象都是Object类型)
function 函数名(形参1, 形参2, ...){
// 创建一个新的对象
var 对象名 = new Object();
//添加属性
对象名.属性1 = 形参1;
对象名.属性2 = 形参2;
对象名.方法名 = function(){语句...}
// 返回对象
return 对象名;
}
var 对象名 = 函数名(实参1, 实参2, ...);
// 工厂模式最终版
function createPerson2(name, age, gender){
// 创建一个新的对象
var obj = new Object()
// 向对象中添加属性
obj.name = name;
obj.age = age;
obj.gender = gender;
obj.sayName = function(){
console.log('新:' + this.name + ' ' + this.age + ' ' + this.gender)
}
// 将该对象返回
return obj;
}
var obj3 = createPerson2('孙悟空', 18, '男')
obj3.sayName()
-
添加属性
-
对象中保存的值称为属性,向对象添加属性的语法:
-
// 向对象添加属性 对象名.属性名 = 属性值 对象名["属性名"] = 属性值
-
对象名["属性名"] = 属性值更灵活,在[]中直接传递一个变量时,就会读取变量值对应的属性
-
obj['m'] = 123; var n = 'm' console.log(obj[n]);
-
读取对象中的属性
-
如果读取对象中不存在的属性,不会报错,而是会返回undefined
-
-
// 读取对象中的属性 对象名.属性名
-
修改对象中的属性值
-
-
// 修改对象中的属性值
对象名.属性名 = 新值
-
删除属性
// 删除属性
delect 对象名.属性名
<script>
// 创建obj对象
var obj = new Object();
// 向obj中添加一个name属性
obj.name = '孙悟空';
// 取出obj的属性值
console.log(obj.name);
// 修改name属性的值
obj.name = '猪八戒';
// 取出obj的属性值
console.log(obj.name);
// 删除name属性
delete obj.name;
// 取出obj的属性值
console.log(obj.name);
// 打印
console.log(obj);
</script>
-
属性名和属性值
-
属性名:
-
对象名不强制要求遵守标识符规范,但是极力推荐遵守规范
-
-
属性值:
-
JS对象的属性值可以是任意数据类型
-
-
in 运算符
-
通过该运算符可以检查一个对象中是否含有指定的属性
-
有,则返回true
-
无,则返回false
-
-
-
// in 运算符语法
"属性名" in 对象
-
基本数据类型和引用数据类型
-
JS中的变量都是保存在栈内存中
-
基本数据类型
-
基本数据类型的值直接存储在栈内存中
-
值与值之间独立存在,修改一个变量不会影响其他变量
-
-
引用数据类型
-
对象保存在堆内存中,每创建一个新的对象,就会在堆内存中开辟一个新的空间,而变量保存的是对象的内存地址(对象的引用)
-
如果两个变量保存的是同一个对象引用,当通过一个变量修改属性时,另一个变量也会受到影响
-
-
-
==时
-
当比较两个基本数据类型时,比较值
-
当比较两个引用数据类型时,比较的是对象的地址
-
-