一、内置对象
JavaScript中的对象分为4种:内置对象、浏览器对象、自定义对象、DOM对象。JavaScript 提供多个内置对象:Math/Array/Number/String/Boolean ... ...。
二、Math对象
跟数学相关的运算来找Math中的成员(求绝对值,取整)。
1.常用属性
Math.PI 圆周率
2.常用方法
Math.random() 生成随机数
生成n-m的随机数:
Math.floor() 向下取整
Math.ceil() 向上取整
Math.round() 取整,四舍五入
Math.abs() 绝对值
Math.max() 最大值
Math.min() 最小值
Math.sin() 正弦
Math.cos() 余弦
Math.pow() 求指数次幂
Math.sqrt() 求平方根
三、Date对象
1.创建日期对象
Date()是构造函数
var date = new Date();
2.日期原始值
getTime():获取1970年1月1日至今的毫秒数
valueOf();原始值
3.获取日期指定部分
getMilliseconds() // 返回0-999
getSeconds() // 返回0-59
getMinutes() // 返回0-59
getHours() // 返回0-23
getDay() // 返回星期几 0周日 6周6
getDate() // 返回当前月的第几天
getMonth() // 返回月份,从0开始,需要加1
getFullYear() //返回4位的年份 如 2016
四、Array对象
1.创建数组对象的两种方式
1、字面量方式
2、new Array()
2.检测一个对象是否是数组
Array.isArray() 如果返回true就是数组,false是非数组
valueOf() 返回数组对象本身
3.栈操作(先进后出)
栈:表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素
push() 在数组的末尾添加一个或多个元素;
pop() 把数组中的最后一个元素删除
4.队列操作(先进先出)
shift() 把数组中的第一个元素删除
unshift() 在数组的前端添加一个或多个元素;
5.排序方法
reverse() 翻转数组
sort(sortby); sortby,可选参数,规定排序顺序,必须是函数 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。直接调用只能排10以内的(因为是字符串比较)。
6.操作方法
concat() 把参数拼接到当前数组、 或者用于连接两个或多个数组,返回新数组,不会改变原始数组。
slice(start,end) 1、从start开始截取元素,到end结束,包括start,不包括end,返回新数组,不会改变原始数组。
splice() 1、从start开始截取元素,截取length个,,返回新数组,start是索引,length是个数,会改变元素的数组。
7.位置方法
indexOf() 都是找位置 返回索引值 没有找到返回 -1,第一次出现位置
lastIndexOf() 如果没找到返回-1,元素最后一次出现的位置
上述方法只是查找顺序不一样 结果都是索引值
8.数组迭代方法
1.forEach() 方法
用于调用数组的每个元素,并将元素传递给回调函数
可以拿到每个数组中的值,没有返回值
// item是数组里的每一项 index是对应的下标
arr.forEach(function(item,index){
console.log(item);
console.log(index);
})
2.every() some()方法
some(),every()方法的参数是一个回调函数,回调函数中的第一个参数是数组的元素,第二个参数是数组的索引。 some(),every()方法都会返回新的数组
every():判断回调函数中的表达式是否全部满足,如果满足,返回值就是true,只要有一个不满足就是false
some判断回调函数中的表达式是否有一个满足,如果至少一个满足,返回值就是true
var arr2 = [180, 185, 189, 191]
var flag1 = arr2.every(function (item) {
return item > 180
})
3.filter ()与map ()
filter()根据指定条件过滤元素,返回新数组 ;
map()数根据数学运算,返回新数组
var personList = [{ name: "zs", age: 16 }, { name: "ls", age: 19 }, { name: "ww", age: 28 }]
var adultList = personList.filter(function (item) {
return item.age > 18
})
console.log(adultList);
9.清空数组
方式1 推荐
arr = []
方式2
arr.length = 0
方式3
arr.splice(0, arr.length)
10.数组转化字符串
join()数组转化为字符串,以参数分割
五、基本包装类型
为了方便操作基本数据类型,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;
(1)substring是用来截取字符串的,根据参数的个数不同,方法含义也不同;
(2)substring(0,2)这个只含开头不含结尾,因此截取是截取两个字符,从第一个到第二个字符,不包含第三个。
(3)substring(2)这个表示截掉前两个,得到后边的新字符串。
// Number和Boolean基本包装类型基本不用,使用的话可能会引起歧义。例如:
六、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() //分割字符串 返回的是一个数组。。数组的元素就是以参数的分割的