代码写的比较乱 因为时间聪明没有来得及分目录,请慢慢阅读!
为您带来的不便表示深刻得歉意
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>内置对象</title>
<script>
//内置对象
//对象分为 自定义对象 内置对象 浏览器对象(js专属)
//内置对象就是js自带的对象 常用的方法 快速开发
//(1)Math
console.log(Math.PI);//圆周率
console.log(Math.max(1,10));//10
console.log(Math.max(-1,-10));//-1
console.log(Math.max(1,99,'杨'));//NaN
console.log(Math.max());//-Infinity
//求最大值和最小值
var myMath = {
PI:3.141592,
max: function(){
var max = arguments[0];
for(var i = 1; i < arguments.length; i++){
if(arguments[i] > max){
max = arguments[i];
}
}
return max;
},
min: function(){
var min = arguments[0];
for(var i = 1; i < arguments.length; i++){
if(arguments[i] < min){
min = arguments[i];
}
}
return min;
}
}
console.log(myMath.PI);
console.log(myMath.max(1,5,9));
console.log(myMath.min(1,5,9));
//绝对值
console.log(Math.abs(1));//1
console.log(Math.abs(-1));//1
console.log(Math.abs('-1'));//隐式转化
//三个取整方式
//(1) Math.floor() 向下取整
console.log(Math.floor(1.1)); //1
console.log(Math.floor(1.9)); //1
//(1) Math.ceil() 向上取整 ceil(天花板)
console.log(Math.ceil(1.1)); //2
console.log(Math.ceil(1.9)); //2
//(1) Math.round() 四舍五入 其他数字遵从四舍五入 5特殊 它往大的取 因为负数-1大于-2所以取-1
console.log(Math.round(1.1)); //1
console.log(Math.round(1.9)); //2
console.log(Math.round(-1.1)); //-1
console.log(Math.round(-1.5)); //-1 特殊情况
//随机数
console.log(Math.random());// 范围[0,1)
//随机整数
function getRandomIntInclusive(min, max) {
min = Math.ceil(min);1
max = Math.floor(max);9
return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值
//0.9*8 = 0.72 Math.floor(0.72) == 7+1
}
console.log(getRandomIntInclusive(1,9));
//随机点名
var arr = ['张三','张三丰','李四'];
console.log(arr[0]);
console.log(arr[getRandomIntInclusive(0,arr.length - 1)]);
//猜数字
// function getRandom(min, max) {
// min = Math.ceil(min);1
// max = Math.floor(max);9
// return Math.floor(Math.random() * (max - min + 1)) + min;
// }
// var random = getRandom(1,10);
// console.log(random);
// while(true){
// var num = prompt("猜猜数字,输入1-10的数字");
// if(num > random){
// alert("数字猜大了");
// }else if(num < random){
// alert("数字猜小了");
// }else{
// alert("恭喜你,猜对了");
// break;
// }
// }
//只能猜十次
// function getRandom(min, max) {
// min = Math.ceil(min);1
// max = Math.floor(max);9
// return Math.floor(Math.random() * (max - min + 1)) + min;
// }
// var random = getRandom(1,10);
// console.log(random);
// for(var i = 0; i < 10; i++){
// if(i < 10){
// var num = prompt("猜猜数字,输入1-50的数字");
// if(num > random){
// alert('您已经猜了'+ i +'次,您得数字猜大了');
// }else if(num < random){
// alert('您已经猜了'+ i +'次,您得数字猜小了');
// }else{
// alert("恭喜您,您在第" + i + "次,猜对了");
// break;
// }
// }else{
// alert('您已经猜了第' + i + '次了,已经没有机会了,请开启下一轮')
// break;
// }
// }
//日期对象 是一个构造函数 必须使用new 来调用
//
var arr = new Array();//创建了以恶搞数组对象
var obj = new Object();//创建了一个对象实例
//使用date
var date = new Date();//如果没有参数 返回当前系统当前时间
console.log(date);
//参数常用方法
var date1 = new Date(2019,10,1);
console.log(date1);//返回的是11月不是10月
var date2 = new Date('2019-10-1 8:8:8');
console.log(date2);
console.log(date.getFullYear());//返回当前年份
console.log(date.getMonth());//返回得是当前月份 但是系统输出得是(0-11) 返回的就小一个月
console.log(date.getDate());//返回号数
console.log(date.getDay()); //周一返回的是1 周六返回6 但是周天返回0
//写一个完整格式
var year = date.getFullYear();
var month = date.getMonth() + 1;
var dates = date.getDate();
var day = date.getDay();
var arr = ['星期天','星期一','星期二','星期三','星期四','星期五','星期六'];
console.log('今天是' + year + '年' + month + '月' + dates + '日 ' + arr[day]);
console.log(date.getHours());
console.log(date.getMinutes());
console.log(date.getSeconds());
console.log(date.getTime());
//要求封装当前时间时分秒
function getTime(){
var time = new Date();
var h = time.getHours();
h = h < 10 ? '0' + h : h;
var m = time.getMinutes();
m = m < 10 ? '0' + m : m;
var s= time.getSeconds();
s = s < 10 ? '0' + s : s;
return h + ':' + m + ':' + s;
}
console.log(getTime());
//重点
//获得Date总毫秒数(时间戳) 从1970年到现在得毫秒数
//1.通过valueOf() getTime()
console.log(date.valueOf());//距离1970一月一号年得毫秒数
console.log(date.getTime());
//2.简单的写法(最常用的方法)
var dateTime = +new Date();
console.log(dateTime);
//3.H5新增 获得总的毫秒数
console.log(Date.now());
//倒计时
// d = parseInt(总秒数/60/60/24); //计算天数
// h = parseInt(总秒数/60/60%24); //计算小时
// m = parseInt(总秒数/60%60); //计算分钟
// s = parseInt(总秒数%60); //计算秒数
function countDown(time){
var nowTime = +new Date();//返回当前时间总总毫秒数
var inputTime = +new Date(time); //返回用户输入时间的总毫秒
var times = (inputTime - nowTime) / 1000 ; //times是剩余时间总秒数
//转换
var d = parseInt(times / 60 / 60 / 24); //天
d = d < 10 ? '0' + d : d;
var h = parseInt(times / 60 / 60 % 24);
h = h < 10 ? '0' + h : h;
var m = parseInt(times / 60 % 60);
m = m < 10 ? '0' + m : m;
var s = parseInt(times % 60);
s = s < 10 ? '0' + s : s;
return d + '天' + h + '时' + m + '分' + s + '秒';
}
console.log(countDown('2021-1-1 12:00:00'));
//数组对象
//1.利用数组字面量
var arr = [1,2,3];
console.log(arr[0]);
//2.利用new array
var arr1 = new Array();//创建了一个空的数组
var arr2 = new Array(2);//2表示u数组长度为2 里面有两个空的数据元素
console.log(arr2);
var arr3 = new Array(2,3);
console.log(arr3);
function reverse(arr){
if(arr instanceof Array){
// if(Array.isArray(arr)){
var newArr = [];
for(var i = arr.length - 1; i >= 0; i--){
newArr[newArr.length] = arr[i];
}
return newArr;
}else{
return '这个参数必须是数组格式'
}
}
console.log(reverse([1,2,3]));
console.log(reverse(1,2,3));
//检测是否为数组
//1.instanceof 运算符
var arr = [];
var obj = {};
console.log(arr instanceof Array);
console.log(obj instanceof Array);
//2.Array.isArray(参数); H5新增方法 ie9以上版本才支持
console.log(Array.isArray(arr));
console.log(Array.isArray(obj));
//添加数组元素得方法
//1.push() 再数组末尾 添加一个或者多个元素 push 推
var arr = [1,2,3];
// arr.push(4,'杨');
console.log(arr);
console.log(arr.push(4,'杨'));
//(1) push 是可以给数组追加新的元素
//(2) push() 参数直接写 数组元素即可
//(3) push 完毕之后返回的是 新数组的长度
//(4) 原数组也会发生改变
//2.unshift 再数组开头 添加一个或者多个元素
// arr.unshift('red');
console.log(arr.unshift('red'));
console.log(arr);
//(1) unshift 是可以给数组前面追加新的元素
//(2) unshift() 参数直接写 数组元素即可
//(3) unshift 完毕之后返回的是 新数组的长度
//(4) 原数组也会发生改变
//3.pop() 它可以删除数组最后一个元素
// arr.pop();
console.log(arr.pop());//返回值是删除的元素
console.log(arr);
//(1) pop 是可以删除数组最后一个元素 只能一个
//(2) pop() 没有参数
//(3) pop 完毕之后返回的是 删除的元素
//(4) 原数组也会发生改变
//4.shift() 它可以删除数组最后一个元素
// arr.shift();
console.log(arr.shift());
console.log(arr);
//(1) shift 是可以删除数组最前一个元素 只能一个
//(2) shift() 没有参数
//(3) shift 完毕之后返回的是 删除的元素
//(4) 原数组也会发生改变
//剔除2000以上的
function screen(){
var screen = [1500,1200,2100,1800];
var newScreen = [];
for(var i = 0;i <= screen.length;i++){
if(screen[i] < 2000){
// newScreen[newScreen.length] = screen[i];
newScreen.push(screen[i])
}
}
return newScreen;
}
console.log(screen());
//数组排序
// 1.翻转函数 reverse
var arr = ['pink','red','blue'];
arr.reverse();
console.log(arr);
//2.数组排序(冒泡排序) sort
// var arr = ['1','3','2'];
var arr = ['11','331','5']; //会出现排序错误
arr.sort();
console.log(arr);
var arr1 = ['11','331','5']; //会出现排序错误
arr1.sort(function(a,b){//如果a - b 大于0就交换位置 小于则不变 b - a同理
return a - b;//升序
return b - a;//降序
});
console.log(arr1);
//数组索引方法 返回该数组元素的索引号 indexOf(数组元素)
//他只会返回第一个满足的索引
//如果在该元素找不到元素 则返回 -1
var arr = ['pink','red','blue','red'];
console.log(arr.indexOf('red'));// 1
console.log(arr.indexOf('red')); // 1
console.log(arr.indexOf('red1'));// -1
//数组索引方法 返回该数组元素的索引号 lastIndexOf(数组元素)
//从最后查找符合得数组元素返回索引号
//如果在该元素找不到元素 则返回 -1
var arr = ['pink','red','blue','red'];
console.log(arr.lastIndexOf('red'));// 3
console.log(arr.lastIndexOf('red')); // 3
console.log(arr.lastIndexOf('red1'));// -1
//数组去重
function unique(arr){
newArr = [];
for(var i = 0; i < arr.length; i++){
if(newArr.indexOf(arr[i]) === -1){
newArr.push(arr[i]);
}
}
return newArr;
}
arr = ['a','b','c','n','f','e','w','d','h','j','a','b'];
var dome = unique(['a','b','c','n','f','e','w','d','h','j','a','b']);
console.log(dome);
//数组转换为字符串
//1.toString()
var arr = [1,2,3];
console.log(arr.toString());
//2.join(分隔符)
var arr1 = ['greed','blue','pink'];
console.log((arr.join()));
console.log((arr.join('-'))); //1-2-3
console.log((arr.join('&'))); //1&2&3
//课后了解
//1.concat()链接两个或多个数组 不影响原数组 返回的新数组
let hello = 'Hello, '
console.log(hello.concat('Kevin', '. Have a nice day.'))
// Hello, Kevin. Have a nice day.
let greetList = ['Hello', ' ', 'Venkat', '!']
"".concat(...greetList) // "Hello Venkat!"
"".concat({}) // [object Object]
"".concat([]) // ""
"".concat(null) // "null"
"".concat(true) // "true"
"".concat(4, 5) // "45"
//2.slice() 数组截取slice(begin,end) 返回被截取的数组
//(1)begin 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
//(2)可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
// create an ArrayBuffer with a size in bytes
const buffer = new ArrayBuffer(16);
const int32View = new Int32Array(buffer);
// produces Int32Array [0, 0, 0, 0]
int32View[1] = 42;
const sliced = new Int32Array(buffer.slice(4, 12));
// produces Int32Array [42, 0]
console.log(sliced[0]);
// expected output: 42
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr + "<br />")
document.write(arr.slice(1) + "<br />")
document.write(arr)
//3.splice() 数组删除splice() 数组删除spilce(第几个开始,要删除格式) 返回被删除的数组,注意 这个会影响原数组
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May"]
//4.substr('截取的起始位置','截取几个字符')
var str1 = '改革春风吹满地';
console.log((str1.substr(2,2)));
//5.replace('被替换的字符','替换为的字符') 智慧替换满足第一个
var str2 = '改革春风吹满地';
console.log(str2.replace('春风','一样'));
//6.split('分隔符') 分隔符取决于你字符得分隔符 字符转换为数组 以前学过join() 把数组转换为字符串
var str3 = 'red,blue,pink';
console.log(str3.split(','));
var str4 = 'red&blue&pink';
console.log(str4.split('&'));
//案例
var s = 'bdhjsavbfhuagdashjk';
while(s.indexOf('s') !== -1){
s = s.replace('s','*');
}
console.log(s);
//字符串对象
var str = 'andy';
console.log(str.length);
//对象 才有属性和方法 复杂类型才有 属性和方法
//简单数据类型为什么会有length
//基本包装类型: 就是把简单的数据类型 包装成为了 复杂数据类型
//(1)把把简单数据类型包装为复杂类型
var temp = new String('andy');
//(2)把临时变量给 str
str = temp;
//(3)销毁这个零时变量
temp = null;
//字符串不可变 我们看到得改变只是 str只是从原值得存储空间指向了从另一个新值得空间
var str ="jandy";
console.log(str);
str = 'red';
console.log(str);
//所以不要大量的拼接字符
// var str = '';
// for(var i = 0; i < 10; i++){
// str += 1;
// }
//根据字符返回位置 str.indexOf('要查找的字符',[起始的位置])
var str = '121234562';
console.log(str.indexOf(2,4));//从索引 4开始查找
//lastIndexOf('要查找的字符',[起始的位置]) 从后面开始查找
//返回字符元素出现的位置及次数
var str = '121234562';
var index = str.indexOf(2);
var num = 0;
//console.log(index);
while(index !== -1){
console.log(index);
num ++;
index = str.indexOf('2',index + 1);
}
console.log('出现的次数:'+ num);
//查找数组元素位置及个数
var arr = ['red','bule','greed','pink','red','red','red'];
var num = 0;
var index = arr.indexOf('red');
// console.log(index);
while(index !== -1){
console.log(index);
num ++;
index = arr.indexOf('red',index + 1);
}
console.log('出现的次数:'+ num);
//根据位置返回字符
//1.charAt(index)
var str = 'a121234562';
var newStr = '';
// console.log(str.charAt(3));
for(var i = 0; i < str.length; i++){
// console.log(str.charAt(i));
// index = str.charAt(i);
newStr += str.charAt(i);
}
console.log(newStr);
//charCodeAt(index) 返回相应索引号得字符ASCII值 判断用户按下哪个键
console.log(str.charCodeAt(0));
//str[index] H5新增 和charArt[index]同理
console.log(str[0]);
var str = 'a121234562';
var newStr = '';
for(var i = 0; i < str.length; i++){
newStr += str[i];
}
console.log(newStr);
//案例
// 有一个对象 判断是否有属性 对象['属性名']
var o = {
age: 18,
}
if(o['sex']){
console.log('里面有属性');
}else{
console.log('里面没有属性');
}
var str = 'fjisdghfiusdjjkhjhfjmbcjk';
var max = {};
for(var i = 0;i < str.length; i++){
var chars = str.charAt(i);
if(max[chars]){
max[chars]++;
}else{
max[chars] = 1;
}
}
console.log(max);
//2.遍历对象
var maxs = 0;
var ch = '';
for(var k in max){
//k的是属性名
//max[k]得到的是属性值
if(max[k] > maxs){
maxs = max[k];
ch = k;
}
}
console.log(maxs);
console.log('最多的字符是' + ch);
</script>
</head>
<body>
</body>
</html>