常用方法
Math. 生成随机数
Math.floor() 向下取整
Math.ceil() 向上取整
Math.round() 取整,四舍五入
Math.abs() 绝对值
Math.max() 最大值
Math.min() 最小值
Math.sin() 正弦
Math.cos() 余弦
Math.pow() 求指数次幂
Math.sqrt() 求平方根
Date对象
创建Date实例用来处理日期和时间。Date 对象基于1970年1月1日(世界标准时间)起的毫秒数。
-
、创建日期对象
Date()是构造函数
var date = new Date();
-
、日期原始值
getTime():获取1970年1月1日至今的毫秒数
valueOf();原始值,获取1970年1月1日至今的毫秒数
(3)、获取日期指定部分
getMilliseconds()
getSeconds() // 返回0-59
getMinutes() // 返回0-59
getHours() // 返回0-23
getDay() // 返回星期几 0周日 6周6
getDate() // 返回当前月的第几天
getMonth() // 返回月份,***从0开始***
getFullYear() //返回4位的年份 如 2016
演示示例:日期对象
4.Array对象
-
、创建数组对象的两种方式
1、字面量方式
2、new Array()
-
、检测一个对象是否是数组
instanceof 如果返回true就是数组,false是非数组
Array.isArray() 如果返回true就是数组,false是非数组
valueOf() 返回数组对象本身
-
、栈操作(先进后出)
栈:表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素
push() 添加元素
pop() 删除元素
-
、队列操作(先进先出)
shift() 删除元素
unshift() 添加元素
-
、排序方法
reverse() 翻转数组
sort(sortby); sortby,可选参数,规定排序顺序,必须是函数 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
-
、操作方法
concat() 把参数拼接到当前数组、 或者用于连接两个或多个数组
slice(start,end) 1、从start开始截取元素,到end结束,包括start,不包括end,返回新数组,start,end是索引,
2、不会改变原始数组
splice() 1、从start开始截取元素,截取length个,,返回新数组,start是索引,length是个数
但是会删除原数组中截取出来的内容
-
、位置方法
indexOf() 都是找位置 返回索引值 没有找到返回 -1,第一次出现位置
lastIndexOf() 如果没找到返回-1,元素最后一次出现的位置
上述方法只是查找顺序不一样 结果都是索引值
演示示例:数组对象(一)
课堂练习: 解决上述数组去重的bug
-
、数组迭代方法
迭代(即是不停的代换)
1、forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数
array.forEach(function(currentValue, index))
currentValue 必需。当前元素
Index 可选。当前元素索引值
可以拿到每个数组中的值,没有返回值
问题思考:迭代方法究竟会不会改变原来的值?
2、every() some()方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
some(),every()方法的参数是一个回调函数,回调函数中的第一个参数是数组的元素,第二个参数是数组的索引
some(),every()方法都会返回新的数组
公式: var flag1 = arr3.every(function (value, index) {
return value > 55;
})
console.log(flag1);
var flag2 = arr3.some(function (value, index) {
return value >= 88;
})
console.log(flag2)
every():判断回调函数中的表达式是否全部满足,如果满足,返回值就是true,只要有一个不满足就是false
some判断回调函数中的表达式是否有一个满足,如果至少一个满足,返回值就是true
3、filter ()与map ()
filter()根据指定条件过滤元素,返回新数组 ;
map()数根据数学运算,返回新数组
//filter():根据指定条件过滤元素,返回新数组
var new1 = arr.filter(function (value, index) {
return value >= 33;
})
console.log(new1);
//map():根据数学运算,返回新数组
var new2 = arr.map(function (value, index) {
return Math.pow(value, 2);
})
-
、清空数组
方式1 推荐
arr = []
方式2
arr.length = 0
方式3
arr.splice(0, arr.length)
-
、数组转化字符串
join()数组转化为字符串,以参数分割
演示示例:数组对象(二)
5.基本包装类型
为了方便操作基本数据类型,JavaScript还提供了三个特殊的引用类型:String/Number/Boolean
// 下面代码的问题?
// s1是基本类型,基本类型是没有方法来操作的
var s1 = 'zhangsan';
var s2 = s1.substring(5);
// 当调用s1.substring(5)的时候,先把s1包装成String类型的临时对象,再调用substring方法,最后销毁临时对象, 相当于:
var s1 = new String('zhangsan');
var s2 = s1.substring(5);
s1 = null;
// 创建基本包装类型的对象
var num = 18; //数值,基本类型
var num = Number('18'); //类型转换
var num = new Number(18); //基本包装类型,对象
// Number和Boolean基本包装类型基本不用,使用的话可能会引起歧义。例如:
var b1 = new Boolean(false);
var b2 = b1 && true; // 结果是什么
6.String对象
(1)、字符串的不可变
var str = 'abc';
str = 'hello';
// 当重新给str赋值的时候,常量'abc'不会被修改,依然在内存中
// 重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变
// 由于字符串的不可变,在大量拼接字符串的时候会有效率问题
(2)、创建字符串对象
var str = new String('Hello World');
// 获取字符串中字符的个数
console.log(str.length);
(3)、字符串对象的常用方法
字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串
1 字符方法
charAt() //获取指定位置处字符
charCodeAt() //获取指定位置处字符的ASCII码
str[0] //HTML5,IE8+支持 和charAt()等效
2 字符串操作方法
concat() //拼接字符串,等效于+,+更常用
slice(start,end) //从start位置开始,截取到end位置,end取不到
substring(start,end) //从start位置开始,截取到end位置,end取不到
substr(start,length) 从start位置开始,截取length个字符
indexOf() //返回指定内容在元字符串中的位置,,如果没有,返回-1;(从前往后,检索到第一个就结束)
lastIndexOf() //返回指定内容在元字符串中的位置,,如果没有,返回-1;(从后往前,检索到第一个就结束)
trim() //只能去除字符串前后的空白
大小写转换方法
toUpperCase() //转换大写
toLowerCase() //转换小写
search()//方法用于检索字符串中指定的子字符串,返回子字符串的起始位置
replace(old,new) //替换字符串替换字符串 new替换old
split() //分割字符串 返回的是一个数组。。数组的元素就是以参数的分割的