自定义一个求max数的方法
function MyMath() {
//添加了一个方法
this.getMax=function () {
//所有数字中的最大值
var max=arguments[0];
for(var i=0;i<arguments.length;i++){
if(max<arguments[i]){
max=arguments[i];
}
}
return max;
};
}
//实例对象
var mt=new MyMath();
var result=mt.getMax(10,20,30,40,100,3);
console.log(result);
案例:随机颜色设置
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
div {
width: 300px;
height: 200px;
background-color: pink;
}
</style>
<script>
//随机产生一个十六进制的颜色值
function getColor() {
var str = "#";
//一个十六进制的值的数组
var arr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
for (var i = 0; i < 6; i++) {
//产生的每个随机数都是一个索引,根据索引找到数组中对应的值,拼接到一起
var num = parseInt(Math.random() * 16);
str += arr[num];
}
return str;
}
//页面记载的事件
window.onload = function () {
//在文档中通过id属性的值查找这个元素(标签).设置该标签的背景颜色
document.getElementById("dv").style.backgroundColor = getColor();
};
//console.log(getColor());
</script>
</head>
<body>
<div id="dv"></div>
</body>
</html>
Date对象
var dt=new Date();
//当前的时间---当前的服务器
console.log(dt);
var dt=new Date("2017-08-12");
//传入的时间
console.log(dt);
var dt=new Date("2017/08/12");
//传入的时间
console.log(dt);
//获取时间的对象
var dt=Date.now();
console.log(dt);//毫秒
var dt = new Date();
//获取年份
console.log(dt.getFullYear());
//获取月份
console.log(dt.getMonth()+1);//是0开始的 真实的月份是需要加1的
//获取日期
console.log(dt.getDate());
//获取小时
console.log(dt.getHours());
//获取分钟
console.log(dt.getMinutes());
//获取秒
console.log(dt.getSeconds());
//获取星期
console.log(dt.getDay());//星期从0开始的
var dt=new Date();
console.info(dt.toDateString());//Sat Sep 15 2018
console.info(dt.toLocaleDateString());//9/15/2018
console.info(dt.toTimeString());//17:04:13 GMT+0800 (China Standard Time)
console.info(dt.toLocaleTimeString());//5:04:13 PM
console.info(dt.valueOf());//1537002253022
console.info(dt.toString());//Sat Sep 15 2018 17:04:13 GMT+0800 (China Standard Time)
格式化日期和时间(需要引入文件,才可以使用该函数)
<script src="common.js"></script>
console.log(getDate(new Date()));
String---->是一个对象
* 字符串可以看成是字符组成的数组,但是js中没有字符类型
* 字符是一个一个的,在别的语言中字符用一对单引号括起来
* 在js中字符串可以使用单引号也可以使用双引号
* 因为字符串可以看成是数组,所以,可以通过for循环进行遍历
*
* 字符串特性:不可变性,字符串的值是不能改变
*
* 字符串的值之所以看起来是改变的,那是因为指向改变了,并不是真的值改变了
// var str="hello";
// str[1]="W"; 字符串可以通过索引访问字符串中的某个值,但是,是可以访问---读取---只读
// console.info(str) //hello
// for(var i=0;i<str.length;i++){
// console.log(str[i]);
// }
* 实例方法---->必须要通过new的方式创建的对象(实例对象)来调用的方法
* 静态方法---->直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调用的)
* .length------>字符串的长度
* .charAt(索引),返回值是指定索引位置的字符串,超出索引,结果是空字符串
* .fromCharCode(数字值,可以是多个参数),返回的是ASCII码对应的值
* .concat(字符串1,字符串2,...);返回的是拼接之后的新的字符串
* .indexOf(要找的字符串,从某个位置开始的索引);返回的是这个字符串的索引值,没找到则返回-1
* .lastIndexOf(要找的字符串);从后向前找,但是索引仍然是从左向右的方式,找不到则返回-1
* .replace("原来的字符串","新的字符串");用来替换字符串的
* .slice(开始的索引,结束的索引); 从索引5的位置开始提取,到索引为10的前一个结束,没有10,并返回这个提取后的字符串
* .split("要干掉的字符串",切割后留下的个数);切割字符串
* .substr(开始的位置,个数);返回的是截取后的新的字符串
* .substring(开始的索引,结束的索引),返回截取后的字符串,不包含结束的索引的字符串
* .toLocaleLowerCase();转小写
* .toLowerCase();转小写
* .toLocaleUpperCase()转大写
* .toUpperCase();转大写
* .trim();干掉字符串两端的空格
案例:找出一个字符串中所有出现o的下标
var str2 = "hello wod odd ott fbo nhyo";
var index = 0;//开始的位置
var key = "o";//要找的字符串
while ((index = str2.indexOf(key, index)) != -1) {//如果是-1情况,说明找完了
console.log(index);
index += key.length; //更新查找的下标
}
案例:统计字符串中字符出现的次数
//我想知道这个obj对象中有没有sex这个属性
//把对象["属性名字"]--->放在if的判断中即可----判断对象中有没有这个属性
//if的判断的结果是true,则有这个属性,否则没有这个属性
// if(obj["age"]){
// console.log("有");
// }else{
// console.log("没有");
// }
//案例3:找到这个字符串中每个字符串出现了多少次
var str3 = "whatOareYyouYnoYshaHleiHoHmyHgod";
//第一步:把所有的字母全部变成小写
str3 = str3.toLocaleLowerCase();
//第二步:创建一个空对象,目的:把字母作为键,次数作为值
var obj = {};
//第三步,遍历字符串,获取每个字母
for (var i = 0; i < str3.length; i++) {
//判断obj这个对象中有没有这个字母(字母---键)
var key = str3[i];//每个字母
if (obj[key]) {//判断obj中有没有这个键
//对象中有这个字母了
obj[key]++;
} else {
//对象中没有这个字母,那就把字母加到对象中,并且给这个字母一个出现的次数,默认1次
obj[key] = 1;
}
}
Array
//构造函数
// var arr1=new Array();
// //字面量的方式
// var arr2=[];
* Array.isArray(对象)---->判断这个对象是不是数组
* instanceof关键字
* .concat(数组,数组,数组,...) 组合一个新的数组
* from:值的复制。var newArray=Array.from(arr); //浏览器版本太低,会报异常,is not function
* .every(函数)--返回值是布尔类型,函数作为参数使用,函数中有三个参数,第一个参数是元素的值,第二个参数是索引值,第三个参数是原来的数组(没用)
* 如果这个数组中的每个元素的值都符合条件,最后才返回的是true
var arr=["小明明lkko","小曹操674","小白白bd","笑眯眯a"];
var flag=arr.every(function (ele,index) {
//数组中的每个元素的长度是不是大于4
return ele.length>4;
});
*
* .filter(函数);返回的是数组中每一个元素都复合条件的元素,组成了一个新的数组
var arr=[10,20,30,40,50,60,70,80];
var newArr=arr.filter(function (ele) {//ele---每个元素
return ele>40;
});
console.log(newArr);
*
* .push(值);--->把值追加到数组中,加到最后了---返回值也是追加数据之后的数组长度
* .pop();--->删除数组中最后一个元素,返回值就是删除的这个值
* .shift();--->删除数组中第一个元素,返回值就是删除的这个值
* .unshift();--->向数组的第一个元素前面插入一个新的元素,----返回值是插入后的程度
* .forEach(函数)方法---遍历数组用---相当于for循环
var arr = [10, 20, 30, 40];
arr.forEach(function (ele,index) {
console.log(ele+'======'+index);
});
* .indexOf(元素值);返回的是索引,没有则是-1
* .join("字符串");----返回的是一个字符串,将数组元素之间加该字符串返回字符串
* .map(函数);--->数组中的每个元素都要执行这个函数,把执行后的结果重新的全部的放在一个新的数组中
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
console.log(roots);
* .reverse();----->反转数组
* .sort();---排序的,可能不稳定,如果不稳定,请写MDN中的那个固定的代码
* .arr.slice(开始的索引,结束的索引);把截取的数组的值放在一个新的数组中,但是不包含结束的索引对应的元素值
* .splice(开始的位置,要删除的个数,替换的元素的值);一般是用于删除数组中的元素,或者是替换元素,或者是插入元素
基本包装类型
//普通变量不能直接调用属性或者方法
//对象可以直接调用属性和方法
//基本包装类型:本身是基本类型,但是在执行代码的过程中,如果这种类型的变量调用了属性或者是方法,那么这种类型就不再是基本类型了,而是基本包装类型,这个变量也不是普通的变量了,而是基本包装类型对象
//string number boolean
// var str="hello";
// str=str.replace("ll","HH");
// console.log(str);
// var str=new String("hello");
// str=str.replace("ll","HH");
// console.log(str);
// str=null;
// var num=10;//number---->
// console.log(num.toString());
//如果是一个对象&&true,那么结果是true
//如果是一个true&&对象,那么结果是对象
// var flag=new Boolean(false);
// var result=true&&flag;
// console.log(result);
// var num=10;
// var num2=Number("10");//转换,没有new---类型转
// var num3=new Number("10");//基本包装类型