JavaScript提供了很多常用的内置对象,包括数学对象Math、日期对象Date、数组对象Array以及字符串对象String等。
Math对象用来对数字进行与数学相关的运算,不需要实例化对象,可以直接使用其静态属性和静态方法,Math对象的常用属性和方法如下表。
使程序随机生成一个1~10之间的数字,并让用户输入一个数字,判断这两个数的大小,如果用户输入的数字大于随机数,那么提示“你猜大了”,如果用户输入的数字小于随机数,则提示“你猜小了”,如果两个数字相等,就提示“恭喜你,猜对了”,结束程序。
function getRandom(min,max){ return Math.floor(Math.random()*(max-min+1)+min); } var random = getRandom(1,10); while(true){ var p = prompt("请输入猜的数字:"); if(p>random){alert("猜大了")} else if(p<random){alert("猜小了")} else{alert("猜对了");break;} }
JavaScript中的日期对象需要使用new Date()实例化对象才能使用,Date()是日期对象的构造函数。Date()构造函数可以传入一些参数,示例代码如下。
// 方式1:没有参数 var date1 = new Date(); // 输出:Wed Oct 16 2019 10:57:56 GMT+0800 (中国标准时间) // 方式2:传入年、月、日、时、分、秒(月的范围是0~11) var date2 = new Date(2019, 10, 16, 10, 57, 56); // 输出:Sat Nov 16 2019 10:57:56 GMT+0800 (中国标准时间 // 方式3:用字符串表示日期和时间 var date3 = new Date('2019-10-16 10:57:56'); // 输出:Wed Oct 16 2019 10:57:56 GMT+0800 (中国标准时间)
时间戳是获取从1970年1月1日0时0分0秒开始一直到当前UTC时间所经过的毫秒数。
获取时间戳的常见方式如下:
// 方式1:通过日期对象的valueof()或getTime()方法 var date1 = new Date(); console.log(date1.valueOf()); // 示例结果:1571196996188 console.log(date1.getTime()); // 示例结果:1571196996188 // 方式2:使用“+”运算符转换为数值型 var date2 = +new Date(); console.log(date2); // 示例结果:1571196996190 // 方式3:使用HTML5新增的Date.now()方法 console.log(Date.now()); // 示例结果:1571196996190
数组类型检测有两种常用的方式,分别是使用instanceof运算符和使用Array.isArray()方法。
var arr = []; var obj = {}; // 第1种方式 console.log(arr instanceof Array); // 输出结果:true console.log(obj instanceof Array); // 输出结果:false // 第2种方式 console.log(Array.isArray(arr)); // 输出结果:true console.log(Array.isArray(obj)); // 输出结果:false
JavaScript数组对象提供了添加或删除元素的方法,可以实现在数组的末尾或开头添加新的数组元素,或在数组的末尾或开头移出数组元素。方法如下:
push()和unshift()方法的返回值是新数组的长度,而pop()和shift()方法返回的是移出的数组元素。
JavaScript数组对象提供了数组排序的方法,可以实现数组元素排序或者颠倒数组元素的顺序等。排序方法如下:
需要注意的是:reverse()和sort()方法的返回值是新数组的长度。
在开发中,若要查找指定的元素在数组中的位置,可以利用Array对象提供的检索方法。检索方法如下:
默认都是从指定数组索引的位置开始检索,并且检索方式与运算符“===”相同,即只有全等时才会返回比较成功的结果。
要求在一组数据中,去除重复的元素。
function unique(arr) { var newArr = []; for (var i = 0; i < arr.length; i++) { if (newArr.indexOf(arr[i]) === -1) { newArr.push(arr[i]); } } return newArr; } var demo = unique(['blue', 'green', 'blue']); console.log(demo); // 输出结果:(4) ["blue", "green"]
在开发中,可以利用数组对象的join()和toString()方法,将数组转换为字符串。方法如下:
// 使用toString() var arr = ['a', 'b', 'c']; console.log(arr.toString()); // 输出结果:a,b,c // 使用join() console.log(arr.join()); // 输出结果:a,b,c console.log(arr.join('')); // 输出结果:abc console.log(arr.join('-')); // 输出结果:a-b-c
JavaScript还提供了很多其他常用的数组方法。例如,填充数组、连接数组、截取数组元素等。方法如下:
slice()和concat()方法在执行后返回一个新的数组,不会对原数组产生影响,剩余的方法在执行后皆会对原数组产生影响。
字符串对象使用new String()来创建,在String构造函数中传入字符串,这样就会在返回的字符串对象中保存这个字符串。
var str = new String('apple'); // 创建字符串对象 console.log(str); // 输出结果:String {"apple"} console.log(str.length); // 获取字符串长度,输出结果:5
字符串对象提供了用于检索元素的属性和方法,字符串对象的常用属性和方法如下:
var str = 'HelloWorld'; str.indexOf('o'); // 获取“o”在字符串中首次出现的位置,返回结果:4 str.lastIndexOf('o'); // 获取“o”在字符串中最后出现的位置,返回结果:6
字符串对象提供了用于获取字符串中的某一个字符的方法。方法如下:
字符串对象提供了一些用于截取字符串、连接字符串、替换字符串的属性和方法。字符串对象的常用属性和方法如下:
var str = 'HelloWorld'; str.concat('!'); // 在字符串末尾拼接字符,结果:HelloWorld! str.slice(1, 3); // 截取从位置1开始包括到位置3的范围内的内容,结果:el str.substring(5); // 截取从位置5开始到最后的内容,结果:World str.substring(5, 7); // 截取从位置5开始到位置7范围内的内容,结果:Wo str.substr(5); // 截取从位置5开始到字符串结尾的内容,结果:World str.substring(5, 7); // 截取从位置5开始到位置7范围内的内容,结果:Wo str.toLowerCase(); // 将字符串转换为小写,结果:helloworld str.toUpperCase(); // 将字符串转换为大写,结果:HELLOWORLD str.split('l'); // 使用“l”切割字符串,结果:["He", "", "oWor", "d"] str.split('l', 3); // 限制最多切割3次,结果:["He", "", "oWor"] str.replace('World', '!'); // 替换字符串,结果:"Hello!"
更多的内置对象我们可以Mozilla开发者网络(MDN)上查询。