JavaScript基础(六)
对象的属性删除操作
格式: delete 对象.属性名;
var obj = {
name : ‘jack’,
age : 18,
gender : ‘男’,
sayHi : function () {
console.log(‘这是sayHi方法’);
}
};
delete obj.name;
delete obj.age;
delete obj.gender;
delete obj.sayHi;
console.log(obj); // 对象的所有属性都被删除了
小练习
为什么要根据数据创建结构
传统的html和css写法如果要进行内容修改,操作比较繁琐,很慢。
通过js代码进行设置处理起来更为简便、快速
操作步骤
1 明确数据的含义
2 明确数据对应的结构
3 根据数据进行结构的生成即可
在字符串中进行数据拼接的方式
找到要放置数据的位置,书写两个引号
再书写两个+
将数据放入即可
如果要生成复杂结构,会出现多行字符串导致的错误
解决方式:在每行字符串最后设置一个\去除换行符的功能即可
多个对象的创建操作(构造函数)
构造函数的作用:用来进行多个对象的创建操作
构造函数的使用步骤:
调用构造函数时必须加 new
new的作用:
new创建了一个对象
new将这个对象返回了
new在函数中设置了this,this就表示当前创建的这个对象
new还可以调用构造函数(不推荐使用)
建议
构造函数的命名首字母大写
作用:对操作没有实际影响,只是为了标识,可以方便区分普通函数和构造函数
对象类型检测相关操作
如何对复杂类型进行类型检测
typeof 只能用于除null以外的基本类型的类型检测。
instanceof
格式: 数据 instanceof 构造函数名
返回值:布尔类型
constructor (常用)
格式: 数据.constructor
返回值: 可以获取创建当前对象的构造函数
Object.prototype.toString.call(数据)
作用:可以获取任意数据的类型名称
返回值: '[object 首字母大写的类型名称]'
console.log( Object.prototype.toString.call('abc') ); // '[object String]'
console.log( Object.prototype.toString.call(200) ); // ‘[object Number]’
console.log( Object.prototype.toString.call({}) ); // ‘[object Object]’
console.log( Object.prototype.toString.call(null) ); // ‘[object Null]’
null的类型检测问题
typeof对null检测结果为’object’,检测结果不准确
null一定是基本类型
检测null的方式
一般我们不写上面的检测方式,我们直接进行
数据 === null
Object.prototype.toString.call(null) === ‘[object Null]’ 太麻烦,但是功能没问题
复杂类型的比较操作
指的是复杂类型进行==、=、!=、!
对复杂类型进行比较操作时,是比较内存单元中的值。
因为复杂类型在内存单元中保存的是地址,比较比的也是地址
两个复杂类型长得一样,比较结果也一定是false
必须两个复杂类型是同一个地址时,才能返回true
// 示例1:长得一样的两个复杂类型进行比较
console.log([1, 2, 3] == [1, 2, 3]); // false
console.log([1, 2, 3] === [1, 2, 3]); // false
// 示例2:两个复杂类型实际是同一个数据时进行比较
var arr1 = [1, 2, 3];
var arr3 = arr1;
console.log(arr1 == arr3); // true
console.log(arr1 === arr3); // true
var obj1 = {
name : 'jack'
};
var obj2 = obj1;
console.log(obj1 == obj2); // true
console.log(obj1 === obj2); // true
内置对象API
API(全拼为Application Programming Interface,应用程序编程接口)
接口
生活中的接口:电源接口,网线接口,usb接口。。
概念:**能够提供某种能力的事物**统称为接口。
API
概念:能够提供应用程序的编程能力的事物
提供我们自己实现不了的功能
我们自己可以实现,但是通过提供的功能操作更简便
本质:其实就是一些属性和方法
内置对象API
概念:js为了方便开发者操作,提供了很多的功能。这些功能根据具体操作的数据形式不同又划分为多个对象形式,称为内置对象。
主要是学习写法,用法,使用场景,不需要考虑每个功能的实现方式。(拿来主义)
Math 数学对象
Math.max() 取最大值
Math.min() 取最小值
Math.random() 取随机数(需要掌握)
// - 取值范围: [0,1) 含0不含1
console.log(Math.random());
// 示例1:例如获取指定范围的随机整数 0-10
Math.random() * 11; // [0,11)
console.log(parseInt(Math.random() * 11)); // 0-10的随机整数
// 示例2:例如获取数组中的随机元素
// - 获取随机元素其实就是随机的索引值
// - 索引值范围: 0 - 4
// - parseInt(Math.random() * arr.length);
var arr = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’];
var i = parseInt(Math.random() * arr.length); // 获取随机索引值
console.log(arr[i]);
Math.ceil() 向上取整(需要掌握)
Math.floor() 向下取整(需要掌握)
Math.round() 四舍五入
Math.abs() 取绝对值
Date 日期对象
// 1 创建方式
// var date = new Date(); // 表示计算机的当前时间
// var date = new Date(‘2018-7-5 15:13:6’); // 方式1:传参设置为指定的某个时间
// var date = new Date(2018, 0, 5, 15, 13, 6); // 方式2:数值形式注意月份从0开始
// console.log(date);
// 2 Date的方法(用来获取日期中的某个部分,不需要刻意去记)
var date = new Date();
console.log(date.getFullYear()); // 获取年
console.log(date.getMonth() + 1); // 获取月,注意月份从0开始,使用时记得 + 1
console.log(date.getDate()); // 获取日
console.log(date.getDay()); // 获取星期,周日是0
console.log(date.getHours()); // 获取小时
console.log(date.getMinutes()); // 获取分钟
console.log(date.getSeconds()); // 获取秒
console.log(date.getMilliseconds()); // 获取毫秒,1秒=1000毫秒