js内置对象
js三大部分:ECMAScript、DOM、BOM
常见js内置对象:布尔对象
日期对象
数学对象
字符串对象
数组对象
数值对象
一、布尔对象
创建布尔对象与转换布尔值
布尔对象的属性 : constructor(返回对创建此对象的Boolean函数的引用)
使用“new Boolean()”构造函数将参数转换成一个布尔值,并创建一个布尔对象,
而使用“Boolean()”转变函数只是将一个值转换成布尔类型的数据。
二、日期对象
日期对象方法:
getFullYear() //返回年份,4位数,建议使用
getMonth() //返回月份,其值范围为0~11
getDate() //返回日期对象中的一个月中的第几天
getDay() //返回星期中的某一天,0~6
getHours() //返回日期对象中的小时部分
getMinutes() //返回日期对象中的分钟部分
getSeconds() //返回日期对象中的秒钟部分
getMilliseconds() //返回日期对象中的毫秒部分
getTime() //返回日期对象中的时间戳的毫秒数
getTimezoneOffset() //返回日期对象中的时区的时差数,单位是分
三、数学对象
数学对象:数学对象主要作用是为数学计算提供常量和计算函数
1.在实现某个业务时经常用到
2.如果给数学对象API传入非number的数据,先将数据转化为number类型在计算
3.常用的API:
- Math.abs(): 求绝对值
- Math.random(): 求0-1之间的随机数(包括0包括1)
- Math.floor(): 向下取整
- Math.ceil(): 向上取整
- Math.round(): 四折五入
- Math.max(): 求一组数据中的最大值
- Math.min(): 求一组数据中的最小值
数学对象中api参数的特点:
传入非number的数据,先将数据转化为number类型在计算
数学对象的属性:
Math.E: //自然对数的底数(e)
Math.LN10: //loge10
Math.LN2: //loge2
Math.LOG10E: //log10e
Math.LOG2E: //log2e
Math.PI: //3.1415926
Math.SQRT1_2: //2的平方根的倒数
Math.SQRT2: //2的平方根
Math.abs(): //绝对值
Math.ceil(): //进一取整
Math.floor(): //退一取整
Math.max(num1,num2….): //取最大值
Math.min(): //取最小值
Math.pow(x,y): //返回x的y次幂
Math.random(): //0.0~1.0之间的随机数,包括0不包括1
Math.round(): //四舍五入
Math.sqrt(): //平方根
eg:方法作用: 求两个任意数据之间的随机整数
1: 完成任务可变的量是任意的两个数 ;最大数 最小数;作为形成那
2: 方法体完成逻辑对形参进行操作
3: 返回结果
function random (min,max){
var min = min
var max = max
var res = Math.floor(Math.random()*(max-min+1)+min)
return res
}
四、字符串对象
注:字符串对象本身就是字符串,只不过是以对象的形式展示
1.创建方式 new String(字符串)
2.字符串对象是有序的。 有索引值,从0开始
3.length表示字符串的长度
4.获取字符的方式:字符对象[索引值index]
5.所有对对象或者数组中数据的操作,必须先获取在操作
6.注意:字符串对象的改变不能直接通过获取重新赋值形式进行改变;字符串对象中的api可以操作字符串对象。
字符串对象方法:
(一)indexOf()
* 作用:返回子字符abc在字符串中第一次出现的位置
* 子字符:在字符串中必须是连贯的
* 注意:1.如果参数不是字符串的子字符,返回-1
* 返回-1的可能:1> 字符不连贯,
* 2>不存在某个字符
(二)lastIndexOf()
* 作用:返回子字符abc在字符串中最后一次出现的位置
* 注意:参数 非字符串子字符的都是-1
* 返回-1的可能:1>字符不连贯,
* 2>不存在某个字符
(三)字符串大小写转化
* toUpperCase() 将字符串转换为大写
* toLocaleLowerCase() 将字符串转换为小写
* 注意:以上两个方法,只看字符大小写,不看字符内容
(四)截取字符串片段:
substr(startindex,length)
* 作用:截取字符串片段;返回一个子字符
* starindex 表示从哪个索引值开始;会获取索引所对应的字符
* length 截取的子字符最大长度
* 注意: 从索引值开始截取的子字符长度不够;有多少截取多少
substring(startindex,endindex)
*作用:截取字符串片段;返回一个子字符
* starindex:从第几个索引开会时
* endindex:到第几个索引结束
* 注:1>endindex 大于最大索引值;子字符到最大索引为止,有多少截取多少
2>endindex截取的子字符中不包含endindex索引值所对应的字符
* 截取子字符长度:endindex - startindex (endindex不大于最大索引值)
(五)截取字符串中片段:
slice()方法:截取字符串中片段,返回一个新的子字符串
* slice(start,end)
start :表示索引从字符串中第几个位置开始,包含本身
end :表示到第几个位置结束;不包含本身
* 注意:不传值:从头到尾全部返回;
传一个值:表示从第几个位置开始,到某尾结束。
(六)替换字符串
replace()方法:
* 作用:1>替换字符串做作用,并返回一个行的字符串。
* 2>拼配字符串作用 —— 正则
* replace(表达式,替换的字符串) //替换一个与正则表达式相匹配的子串 ****
参一:被替换的字符(oldStr)
参二:替换的字符(newStr)
* 形式看上去不像一个对象的形式。
(七)切割字符串
使用方法一:
* split(正则表达式,数组最大长度) //用于把一个字符串分割成字符串的数组
使用方法二:
* split(str,len) 方法作用;将字符串切割;返回一个数组;
* str: 从哪一个字符串开始截取数据,被截的字符串是不会存在数组中的。
eg:如果str = o 并且字符串中有o这个字符;截取结果;将不会看到o这个字符
* len 返回数组最大的长度。默认长度为1
* 注意:len如果不传值,那么为最大长度
* 一般:可以以空格截取;空串""截取(结果是截取字符串中每一个字符)
eg:var str = 'hellowworl'
var arr = str.split('o')
console.log(arr)
/**输出结果
* ["hell", "ww", "rl"]
* 0: "hell"
* 1: "ww"
* 2: "rl"
* length: 3
*/
(八)其他
1>match(正则) 返回数组,数组中为匹配到的所有子字符
eg:var str = 'sggsgggshgdshfsgfgfsd14545259523259我会的回复你差不多254545689jshdjfhgdhgfg'
//匹配a-z (26个小写英文字母) 字符长度为3-5的,且全局匹配
var reg = /[a-z]{3,5}/g //g : 全局匹配
var reg1 = /[0-9]{3}/
var res = str.match(reg)
var res1 = str.match(reg1)
console.log(res)
console.log(res1)
2>search(regexp) //查找与正则表达式相匹配的子字符串
3>charAt(index) 截取对应子字符
eg:var str = '啦啦啦啦'
var res = str.charAt(0) //charAt(0) === window.charAt
console.log(res)
五、数组对象
数组:是复合类型数据
* 1.数组是有序的
* 2.数组的索引值是从0开始 id
* 3.数组中可以存放任意数据类型的
* 4. 数组中获取数据:array[index]
* 注意:数组中数据不能够直接改变、添加、删除,需要通过数组中的api来完成
数组一旦被定义就不能被删除
(一)删除数组中数据
1>delete方法
* 注:delete是运算符
* 数组元素一旦被定义就不能被删除。
* 使用delete运算符只能删除数组元素的值,使其恢复到未赋值的状态,即元素值为undefined,
* 而不能删除一个数组元素,不能让数组中的元素减少一个。
2>shift()方法
shift() 删除第一个元素,并返回一个删除的元素
eg:var arr = [1,2,3,4,'aaa',{}]
var res = arr.shift()
console.log(arr)
3>pop()方法
pop() 删除最后一个元素,并返回删除的元素
eg:var arr1 = [1,2,3,4,'aaa',{}]
var res1 = arr1.pop()
console.log(arr1,res1)
* 注意:以上(2)和(3)中,原来的数组都发生了变化,以上两个方法都不需要参数
(二)数组变字符串
1>toString() 将数组转换为字符串,返回转化成的字符串
2>join() 将数组元素连接成字符串,返回连接成的字符串
注:split() 使用其分隔,返回一个新数组,只是内容一样
总结:1>数组变字符串:toString()转化为字符串
join()连接成字符串
2>字符串变数组:split()
(三)数组中添加数据
数组中添加数据方式:
unshift() 从头添加;返回长度;原来数组发生变化
push() 从尾添加;返回长度;原来数组发生变化
concat() 从尾添加;返回新数组;原来数组没发生变化 (真正发生改变的,不是原来的数组,而是新数组)
(四)splice()方法
1.删除
splice(index,num) : 删除,返回当前被删除元素组成的新数组
参数一:表示从第几个索引开始
参数二:删除num个数据
2.替换
splice(index,num,res) : 替换,返回被替换的元素组成的新数组
参数一:表示从第几个索引开始
参数二:替换几个元素
参数三:要将其替换的数据
3.插入
splice(index,num,res) : 插入,返回插入后的数组
参数一:表示从第几个索引开始 (索引值是几就在哪插)
参数二:删除几个元素
参数三:要插入的元素
*注意:传入一个参数,从第几个索引开始,往后的所有数据全部删除(包含自己)
(五)slice()方法
slice(starindex,endindex):返回数组中的一部分
*starindex:从第几个索引值开始(包含自己)
【如果该starindex为负数,则表示从原数组中的倒数第几个元素开始提取,
slice(-2)表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)】
*endindex:到第几个索引值结束(不包含自己)
* 注意:原来的数组没有发生变化
* 截取的顺序都是从0开始的 (从左往右),不可能从索引值点到截取
(六)reverse()方法
reverse():颠倒数组中的元素,返回原来的数组
* 注意:原来数组发生变化
* 用途:可以用于排序
(七)排序
sort():将数组元素排序
Sort()方法默认按照ASCII码排序 j解析凡是;按照数组中数据先转化为字符串,
然后再转化为ASCI码值然后再进行比较.(重点:原理)
六、数值对象
创建数值对象:
var num = new Number()
Number() 的作用:
创建数值对象,将其他类型的数据转化为数值型
Number() 转化的规则:
1)如果是布尔值,true和false将分别转换为1和0
2)如果是数字值,只是简单的传入和返回
3)如果是null,返回0
4)如果undefined,返回NaN
parseInt() 转化的规则
1)忽略字符串前面的空格,直到找到第一个非空格字符
2)如果第一个字符不是数字或者是符号,返回NaN
3)空字符串,返回NaN
4)如果第一个字符是数字,会继续解析第二个字符,直到解析完所有后续字符或遇到了一个非数字字符。
5)如果字符串以0x开头且后面跟数字字符,就会将其转为10进制数,同样,八进制也一样。
ParseFloat() 转化的规则
1)第一个小数点是有效的,第二个小数点无效
2)始终忽略前面的0,不分进制数
3)十六进制会被转换成0
4)空字符串转换为NaN