10、javaScript对象

10、javaScript对象

1、对象的定义

object / objjava

存储数据方式:属性: 属性值ajax

定义方式:数组

一、字面量:经过{}来定义一个空对象dom

1 var obj = {};

二、构造函数异步

1 var obj = new Object();

与数组的区别:ide

  • 数组只能使用索引下标,不能使用字符串下标
  • 对象能够使用字符串做为属性(键名),经过操做属性调用属性值
2、对象的基本操做

与数组的操做基本相似,经过属性来操做属性值函数

对象.属性post

  • 点语法是特殊规定,能够不加引号spa

  • 点语法不支持数值属性的调用对象

  • 点语法不会解析变量,只会将变量,按照字符串处理

1 var obj = { name: '张三', age: 18, 100: 100 };
2 console.log(obj.name); // 张三

对象[属性]

  • 对象的属性其实是字符串形式,必需要加引号

  • 数值做为属性时,调用数据加不加引号都行

  • 支持变量解析,能够解析变量中存储的数据,做为属性在对象中调用属性值

  • 变量写在[]中,必定不要加引号,加了引号就成了字符串了

1 var obj = { name: '张三', age: 18, 100: 100 };
2 console.log(obj['name']); // 张三
3 console.log(obj[name]); // undefined

对象的操做:

  • 修改:

    • 与数组的操做相似,是对已有的属性进行赋值

    • 后赋值的数据,会覆盖以前存储的数据

  • 新增:

    • 对不存在的属性进行赋值,操做效果就是给对象新增单元

  • 删除:

    • delete(对象.属性):删除对象中的指定属性

    • delete(对象[属性]):删除对象中的指定属性

3、对象的循环

for...in语法支持对象的循环

1 var obj = { name: '张三', age: 18, sex: '男', addr: '北京', hobby: '吃鸡' };
2 for (var key in obj) {
3   // 点语法不解析变量,执行结果是找key这个属性,结果是undefined
4   // []语法解析变量,key是对象的属性,obj[key]得到属性值
5   console.log(obj.key, obj[key]);
6 }
4、对象的应用

一、记录字符出现的次数

  • 定义一个空对象

  • for...in循环遍历str

  • 经过obj[]方法查找对象中是否有该属性(键名)

    • 没有该属性(即为undefined),就新增属性,属性值为1

    • 有该属性(键名),属性值(键值)加1

 1 var str = 'aaaabbbbbcccccdddeeefffgggggg';
 2 var obj = {};
 3 
 4 // i存储的是字符串的索引,str[i]是对应的字符
 5 for (var i in str) {
 6   if (obj[str[i]] === undefined) {
 7     // 若是调用结果是undefined,证实对象中没有这个键名
 8     // 新增对象的单元,键名是这个字符,键值是 1
 9     obj[str[i]] = 1;
10   } else {
11     // 调用结果不是undefined,证实对象中已经存在这个键名
12     // 存储数值数据 +=1 或者 ++
13     obj[str[i]]++;
14   }
15 }

二、记录数组中数据出现的次数

 1 var arr = [1,2,3,4,5,1,2,3,4,5,6,1,2,3,4,5,6,7,1,2];
 2 
 3 var obj = {};
 4 
 5 arr.forEach(function(v){
 6   if(obj[v] === undefined){
 7     obj[v] = 1;
 8   }else{
 9     obj[v]++;
10   }
11 })
5、内置对象

JavaScript定义好的,能够直接使用的对象

一、Math对象

内置数学/算术对象

math.random():随机数值

  • Math.random() 生成 0-1的小数,能够是0,但永远不会是1

  • 生成 a - b 的随机数值,包含 a 而且包含 b

1 var num = parseInt(Math.random()*(b+1-a) +a);

Math.round():四舍五入取整

  • 没有小数部分,四舍五入取整,保留整数部分

  • 不改变变量存储的原始数值数据

1 var float1 = 123.56789;
2 float1 = Math.round(float1);
3 console.log(float1); // 124

Math.floor():向下取整

  • 彻底舍弃小数部分

1 var float2 = 123.999999999;
2 float2 = Math.floor(float2);
3 console.log(float2); // 123

Math.cell():向上取整

  • 整数部分加1取整

1 var float3 = 123.00000000001;
2 float3 = Math.ceil(float3);
3 console.log(float3); // 124

Math.pow():乘方运算/幂运算

1 // 2的3次方,结果是8
2 console.log(Math.pow(2, 3))

Math.abs():绝对值

1 console.log(Math.abs(-10)); // 10

Math.sqrt():平方根,只有正数

1 console.log(Math.sqrt(9)); // 3

Math.PI:圆周率数值

1 console.log(Math.PI);

二、Date对象

内置时间对象

使用步骤

  • 建立时间对象

1 var d = new Date();
2 // 获取的时间是本地时间,也就是你当前所在时区的时间
3 // 中国时间是东八区,世界标准时间 +8小时

使用时间对象

  • 获取4位年份

1 var year = d.getFullYear();
  • 获取月份,范围是0-11,实际月份是执行结果+1
1 var month = d.getMonth() + 1;
  • 获取日期
1 var date = d.getDate();
  • 获取星期,范围是 0 - 6
1 // 0表示星期日,1表示星期一
2 var week = d.getDay();
3 // 定义一个数组,来存储执行结果 0-6 对应的星期
4 var weekArr = ['日', '一', '二', '三', '四', '五', '六'];
5 week = `星期${weekArr[week]}`;
  • 获取小时,24小时格式
1 var hours = d.getHours();
  • 获取分钟
1 var minutes = d.getMinutes();
  • 获取秒
1 var seconds = d.getSeconds();

设定date

  • 字符串方法
1 // 设定完整的时间, 年份日,时分秒,会自定计算星期
2 var d = new Date('1982-10-12 8:8:0');
3 var d = new Date('1982/10/12 8:8:0');
4 var d = new Date('1982 10 12 8:8:0');
5 var d = new Date('1982,10,12 8:8:0');
1 // 只设定年,默认执行 月日,时分秒
2 var d = new Date('2020');
1 // 只设定年月,默认执行 日,时分秒
2 var d = new Date('2020/5');
1 // 只设定年月日,默认执行 时分秒
2 var d = new Date('2020/5/6');
1 // 只设定年月日,小时分钟  默认执行 秒
2 // 不容许独立设定小时,至少要设定小时分钟
3 var d = new Date('2020/5/6 8:10');
  • 设定多个字符串参数,表示日期时间
1 // 至少要设定年月  
2 // 设定月份的数值是 0 - 11 对应 1月 - 12月
3 var d = new Date(2020,7); // 对应的是2020年8月
1 // 设定年月日
2 var d = new Date(2020,6,2);
1 // 设定年月日,时
2 var d = new Date(2020,6,2,10);
1 // 设定年月日,时分
2 var d = new Date(2020,6,2,10,10); 
1 // 设定年月日 时,分,秒
2 // 完整时间
3 var d = new Date(2020,6,2,10,10,10);

时间戳

  • 当前时间到1970年1月1日0时0分0秒的时间差

  • JavaScript时间戳的单位是毫秒(1秒=1000毫秒)

1 // 设定时间对象
2 var d = new Date();
3 // 默认获取的时间单位是毫秒,须要转化成秒
4 var times = Math.floor( d.getTime() / 1000 );

三、定时器

按照指定的时间间隔循环往复执行程序

基本语法

  • 按照指定时间间隔来执行匿名函数中定义的程序

  • 时间间隔单位是毫秒

  • setInterval( function(){ 程序内容 }, 时间间隔 )

1 var interval = setInterval(function(){
2   console.log('按设定时间间隔打印')
3 }, 1000);
  • 默认定时器会一直执行,除非终止定时器
    • 定义定时器时,使用一个变量来存储定时器,存储的内容是一个数值,这个数值表示当前定时器是整个程序中第几个定时器
    • 使用程序来终止定时器
    • clearInterval(存储定时器的变量)
1 clearInterval(interval);
  • 注意:定时器不是一上来就执行,要在设定的时间间隔以后执行,须要当即执行,执行程序设定在定时器外面

定时器的异步执行

  • 在JavaScript中,普通程序都是同步执行的,遵循顺序流程、分支流程、循环流程三种流程控制

  • 特殊程序是异步执行的(包括定时器、延时器、ajax请求)

  • 全部的异步程序,都会在同步程序执行完以后才会执行

  • 全部的异步程序会一块儿开始执行,时间间隔短的先执行,时间间隔长的后执行

四、延时器

根据时间间隔,延迟执行程序,只会执行一次

1 setTimeout( function(){执行的程序}, 延迟时间 )

延时器的清除

1 clearTimeout()
6、保留指定位小数
1 // 数值.toFixed(保留小数位数)
2 var float = 123.456789;
3 console.log(float2.toFixed(2));

 

 

posted on 2021-07-17 14:06  大米饭盖饭  阅读(1)  评论(0编辑  收藏  举报

相关文章
相关标签/搜索