常用内置对象
Math对象
//PI 圆周率
console.log(Math.PI);
//E 自然数e
console.log(Math.E);
//abs() 求绝对值
console.log(Math.abs(-1.5)); //1.5
console.log(Math.abs(null)); //0
//ceil() 向上取整
console.log(Math.ceil(2.5)); //3
console.log(Math.ceil(-2.5)); //-2
//floor() 向下取整
console.log(Math.floor(2.5)); //2
//round() 四合五入取整
console.log(Math.round(3.4)) //3
//max() 求最大值
console.log(Math.max(2,10,1,16,12)); //16
//min() 求最小值
console.log(Math.min(2,10,1,16,12)); //1
//pow(a,b) a的b次方
console.log(Math.pow(2,3)); //2的3次方 8
//sqrt() 求根号
console.log(Math.sqrt(4)); //2
//random() 产生0-1的伪随机数
console.log(Math.random());
Date对象
Date对象介绍
//常见的创建Date对象的两种方法
var dt = new Date("2019-02-17T00:12:45");
console.log(dt);
var dt = new Date(2019, 2, 17, 0, 12, 45);
console.log(dt);
//不传入参数时,创建的Date对象代表的是当前的时间
var dt = new Date();
console.log(dt);
//当传入的是一个数字时,该数字代表的距离1970-01-01时刻的毫秒数
var dt = new Date(1000); //1000ms = 1s ====> 1970-01-01 08:00:01 中国的时区+8
console.log(dt);
Sun Feb 17 2019 00:12:45 GMT+0800 (中国标准时间)
Sun Mar 17 2019 00:12:45 GMT+0800 (中国标准时间)
Wed Feb 20 2019 11:14:14 GMT+0800 (中国标准时间)
Thu Jan 01 1970 08:00:01 GMT+0800 (中国标准时间)
Date对象常用方法
//常见的Date方法
var dt = new Date();
console.log(dt.getFullYear()); //获得dt对象的年份
console.log(dt.getMonth()); //获得dt对象的月份 月份是从0开始的
console.log(dt.getDay()); //获得dt对象的星期 0表示星期日 从星期日开始
console.log(dt.getDate()); //获得dt对象的日
console.log(dt.getHours()); //获得dt对象的小时
console.log(dt.getMinutes()); //获得dt对象的分钟
console.log(dt.getSeconds()); //获得dt对象的秒数
console.log(dt.valueOf()); //获得dt对象距离1970-01-01 00:00:00的毫秒数
console.log(dt.toDateString()); //星期 月份 日期 年 英文表达的方式
console.log(dt.toLocaleString()); //年/月/日 上午(下午)小时:分钟:秒
console.log(dt.toLocaleTimeString()); //上午(下午)小时:分钟:秒
2019
1
3
20
11
20
28
1550632828888
Wed Feb 20 2019
2019/2/20 上午11:20:28
上午11:20:28
String对象
String对象介绍
之前我们有介绍过字符串类型的变量,它是一种基本数据类型,与字符串对象是不一样的。它们之间的区别是对象有其属性和方法。
var str = "cat";
console.log(str);
var str = new String("cat");
console.log(str);
![](https://i-blog.csdnimg.cn/blog_migrate/515cff1e46ae22ecb714468eface499f.gif)
但是我们发现字符串可以调用字符串对象的方法
var str = "cat";
str = str.toLocaleUpperCase(); //全部转化为大写
CAT
其实上面的执行过程为
var str = "cat";
var str2 = new String(str);
str = str2.toLocaleUpperCase();
str2 = null;
字符串的不可变性
字符串可以看做是字符数组,所以我们可以通过index
去访问字符,如下
var str = "cat";
console.log(str[0]); //访问第一个字符c
c
但是我们不能对字符串进行修改,或者修改是无效的,如
str[0] = "b";
console.log(str); //还是cat,并没有发生改变
cat
这就是字符串的不可变性,但是这不意味着不可以对字符串进行重新赋值
str = "bat";
console.log(str); //字符串发生了改变,变为了bat
bat
但这并不意味着字符串"cat"
发生了改变,而是变量str
指向一个新的字符串"bat"
,但是原来的字符串"cat"
并没有发生改变。
String对象常用方法
var str = "What are you nong sha lei?";
//length属性,获得字符串的长度
console.log(str.length); //26
//chatAt(index) 相当于str[index],获得该处的字符
console.log(str.charAt(0)); //W
//fromCharCode() 由ASCII码数值转化为字符,该方法返回一个字符串
//如65-->A,该方法不是实例对象的方法,是String对象的方法
console.log(String.fromCharCode(65,97)); //Aa
//str.concat(str1,str2,...) 字符串拼接 str + str1 + str2 + ...
//返回拼接后的字符串
console.log(str.concat(" 我是拼接的")); //What are you nong sha lei? 我是拼接的
//indexOf(searchValue, fromIndex) //从fronIndex开始查找字符searchValue,
//返回第一个找到的下标,没有找到返回-1
console.log(str.indexOf("a",3)); //5
//lastIndexOf() 从后往前找,不过index是从前往后算的,没找到返回-1
console.log(str.lastIndexOf("a")); //20
//replace(old,new) 将old替换为new 但是只替换第一个
console.log("hhhello".replace("h","w")); //whhello
//slice(start,end) 提取start-end的字符串返回,不包括end
console.log("hello".slice(0,2)); //he
//split() 根据指定分隔符,形成一个数组
console.log(str.split(" ")); //根据空格分隔得到一个数["What","are","you","nong","sha","lei?"]
//substr(start,length) 从start开始获得长度为length的字符串
console.log("hello".substr(1,2)); //el
//substring(start,end) 获得start-end的字符串,不包括end
console.log("hello".substring(0,1)); //he
//toLowerCase 转小写 toUpperCase 转大写
console.log("HELLO".toLowerCase()); //hello
console.log("hello".toUpperCase()); //HELLO
//trim() 去除前后的空格
console.log(" hello ".trim()); //hello
Array对象
Array对象介绍
Array
对象即数组,即数组是一个对象,数组的创建有两种方法
var arr = [1,2,...]; //字面量创建数组
var arr = new Array(5); //创建一个长度为5的数组
var arr = new Array(1,2,...) //创建一个[1,2,...]的数组
Array对象的常用方法
var arr = [1, 2, 3, 4, 5];
//concat() 合并多个数组
console.log(arr.concat([6, 7, 8])); //[1,2,3,4,5,6,7,8]
//every() 传入一个函数用来筛选,该函数默认有三个参数,
//第一个是元素的值,第二个是索引的值,第三个是this,返回一个布尔值
console.log(arr.every(function (ele, index, arr) {
return ele > 2; //如果不是所有的元素都大于2,那么会返回false,否则返回true
})); //false
//filter() 传入一个函数,也有默认的三个参数同上,如果这三个参数有的用不上,可以不传
//该函数的作用是筛选出符合条件的元素,形成一个数组返回
console.log(arr.filter(function (ele) { //另外两个参数在函数中不使用,所以不传
return ele > 2;
})); //[3,4,5]
//push 在数组的最后加入一个元素,并将加入的值返回
console.log(arr.push(6)); //6
console.log(arr); //[1,2,3,4,5,6]
//pop 删除数组的最后一个元素,并将删除的元素返回
console.log(arr.pop()); //6
console.log(arr); //[1,2,3,4,5]
//unshift() 在数组的开头插入一个元素,并返回数组的长度
console.log(arr.unshift(0)); //6
console.log(arr); //[0,1,2,3,4,5]
//shift()删除数组的第一个元素,并将该元素返回
console.log(arr.shift()); //0
console.log(arr); //[1,2,3,4,5]
//forEach() 遍历数组,需要传入一个函数,该函数也默认有三个参数
//该函数可以对数组进行处理
var copy = [];
arr.forEach(function (ele) {
copy.push(ele) //将arr数组的元素全部加入到copy数组中
});
console.log(copy); //[1,2,3,4,5]
//indexOf() 根据传入的值获得在数组中的索引,如果该值在数组中多次出现,则返回的是第一个出现的索引
//如果在数组中没有出现,则返回-1
console.log(arr.indexOf(1)); //0
//lastIndexOf() 同indexOf,只不过是倒着找
console.log([1,2,3,1].lastIndexOf(1)); //3
//join() 数组以指定的分隔符得到一个字符串
console.log([10,20].join("|")); //"10|20"
//reverse() 将数组反转
console.log(arr.reverse()); //[5,4,3,2,1]
//sort() 将数组排序,不过不稳定需要自己传入排序的函数
arr = [2,1,3,4,0];
arr.sort(function (a,b) {
if(a > b) {
return 1;
} else if (a == b) {
return 0;
} else {
return -1;
}
});
console.log(arr); //[0,1,2,3,4]
//slice(start, end) 提取下标从start到end形成一个数组,不包括end
console.log(arr.slice(1,3)); //[1,2]