// 一.直接用对象自变量创建对象{}
/* var Arry= {
username:'张三丰',
age:18,
sex:'男',
// 对象方法
sayhi: function() {
console.log("hailou");
}
} */
// 调用对象属性有两种方法:
// 1.Arry.age;
// console.log(Arry.age);
// 2.Arry['age'];
// console.log(Arry["age"]);
// 调用方法
// Arry.sayhi();
// ============================
// 二.利用new Object 创建对象
/* var obj=new Object();
obj.name="张三丰";
obj.age=18;
obj.sex="男";
obj.sayhi=function() {
console.log("hi~");
}
console.log(obj.name);
console.log(obj["age"]);
obj.sayhi(); */
// 因为我们创建的对象中有相同属性和方法,我们只能复制
// 因此我们可以利用函数的方法,重复这些相同的代码,我们就把这些函数称之为构造函数
// 构造函数 就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面
// 三.利用构造函数创建函数
// function Star(usname,age,sex) {
// this.name = usname;
// this.age = age;
// this.sex = sex;
// }
// var ldh=new Star('刘德华',18,'男'); //创建对象并且赋予实参,形参调用实参,再将值返回到ldh
// console.log(typeof ldh);
// console.log(ldh.age);
// new 在执行时会做的四件事情:
/* 1.在内存中创建一个新的空对象
2.让this指向这个新的对象。
3.执行构造函数里面的代码,给这个新对象添加属性和方法
4.返回这个新对象(所以构造函数里面不需要return) */
// for(var k in ldh) {
// console.log(k); 打印属性名
// console.log(ldh[k]); 打印的是值
// }
// js的内置对象 Math、Date、Arry、string等.......
// 在两个值中随机取一个整数
function getradom(min,max) {
return Math.floor(Math.random()*(max-min+1))+min;
//Math.random(),随机率范围在[0~1], max-min+1 是取值的数量
}
console.log(getradom(1,10));
// 在字符串中随机选
var arr=['张三','邓四','张五','唐牡','黄丽']
console.log(arr[getradom(0,arr.length-1)]);
// Date与Math不一样,他是一个构造函数 所以我们要实例化后才能使用(也就是 new一下,创造对象)
var now=new Date();
// console.log(now);
// console.log(now.getFullYear());
// console.log(now.getMonth()+1); 月份是0~11
// console.log(now.getDay());
// console.log(now.getMinutes());
// console.log(now.getSeconds());
// console.log(now.getDay()); 星期日0~星期六6 */
// 获得"时间戳"【Date的总时间毫秒数】 不是当前时间的毫秒数,是距离1970年1月1日过去了多少毫秒数
// 通过 valueof() getTime()
console.log(now.valueOf());
console.log(now.getTime());
// 简单写法 返回的是总毫秒数
var data=+new Date();
console.log(data);
// H5新增的
console.log(Date.now());
// 计时器
function count(time) {
var nowtime=+new Date();
var inputime=+new Date(time);
var time=(inputime-nowtime)/1000;
var d=parseInt(time/60/60/24);
var h=parseInt(time/60/60%24);
var m=parseInt(time/60%60);
var s=parseInt(time%60);
return d+'天'+h+'小时'+m+'分'+s+'秒';
}
console.log(count('2021-10-20 17:50:00'));
// 判断是否为数组
// 1.instanceof 运算符能判断是否为数组
// ××× instanceof Array
// 2.Array.isArray(值) 用于判断传递的是否是一个数组
//添加数组元素的方法
//1.push(参数1...) 在数组末尾添加数组元素 返回数组长度
//var Arry=[1,2,3,4];
//console.log(Arry.push(5,6)); //输出为6
//console.log(Arry[4]); //输出为5
//2.unshift() 在数组前添加数组元素 返回数组长度
//var Arry=[1,2,3,4];
//console.log(Arry.unshift(7,8)); //输出为6
//console.log(Arry[0]); //输出为7
//console.log(Arry[1]); //输出为8
//=========================================
//案例:有一个包含工资的数组[1500,1200,2000,2100,1800],要求把数组中工资超过2000的删除,剩余的数组放到新数组里面
/* var Arry1=[1500,1200,2000,2100,1800];
var x=[];
for (var i = 0; i < Arry1.length; i++) {
if (Arry1[i]<2000) {
x.push(Arry1[i]);
}
}
console.log(x); */
//案例:翻转数组["pink","red","blue"]
/* var Arry=["pink","red","blue"];
console.log(Arry.reverse()); */ //reverse:翻转
//案例:冒泡排序
/* var arry=[3,4,7,1];
arry.sort();
console.log(arry); */
//但sort 用于两位数的冒泡就不行了,解决方式如下:
/* var arry=[21,10,31,13];
arry.sort(function(a,b) {
return a-b ; //a-b是升序,b-a是降序
})
console.log(arry); */
//返回数组元素索引号的方法 indexof(数组元素) indexof(数组元素) index:索引号[往前找] lastindex[往后找] indexof(数组元素,开始位置)
//它只放回第一个满足条件的索引号
//它如果在该数组里找不到元素,则返回的是 -1
/* var arry=[21,10,31,13];
console.log(arry.indexOf(31)); //返回2
console.log(arry.indexOf(4)); */ //返回-1
//案例:把旧数组里面重复的元素取出来放到新数组中,重复元素只保留一个,放到新数组中去
/* var Arry=['c','a','z','a','x','a','x','c','b']
var Arry1=[];
for (var i = 0; i < Arry.length; i++) {
if (Arry1.indexOf(Arry[i])==-1) {
Arry1.push(Arry[i]);
}
}
console.log(Arry1); */ //返回 'c','a','z','x','b'
//把数组转化为字符串
//1.toString() 把数组转化为字符串,逗号分隔每一项
var Arry=[1,3,4,5];
console.log(Arry.toString()); //返回 1,3,4,5
//2.join("分隔符")
console.log(Arry.join()); //返回 1,3,4,5
console.log(Arry.join('-')); //返回 1-3-4-5
console.log(Arry.join('&')); //返回 1&3&4&5
//根据位置返回字符方法
//1.charAt(index)
//2.charCodeAt(index) 获取指定位置字符的ASCII码
//3.str[index] h5,IE8+支持
以下是ASCII表