1.包装器函数
1)new Number()
Number.prototype.XXX
2)new String()
String.prototype.XXX
3)new Boolean()
Boolean.prototype.XXX
代码测试:
1)new String( )
由下图可知,str.length输出number值5,但是只有引用数据类型才能调用length,而str是基本数据类型,它此时居然调用成功了。
var str="hello"; //声明了一个基本数据类型string类型的str变量
console.log(str.length);
str在调用length属性时相当于计算机底层默认做了以下操作:
1>将str转换为引用数据类型
new String(str) //str是string类型,默认调用String类型的包装器,将参数str传进来,转换为引用数据类型
object String //返回值是一个字符串类型的实例对象类似object中的Array,相当于object中的String
自动装箱
2>调用length
new String(str).length
3>将str转换回string类型
自动拆箱
调用length时是引用数据类型,调用完后,自动变回string基本类型
2)new Number( )
代码测试:
由下图可知,num.toString( )输出string类型的num10,但是只有引用数据类型才能调用toString( ),而num是基本数据类型,它此时居然调用成功了。
var num=10; //number
console.log(num.toString());
1>调用Number类型的包装器函数,自动装箱
new Number(10);
2>通过实例对象调用toString( )
new Number(10.toString())
3>自动拆箱
10 //number //自动拆箱
注意:
new Number():包装器函数
var a=new Number(); //a是object类型,属引用数据类型
Number():转换函数
var num=10; //num是number类型
String.prototype.XXX
length:返回字符串长度
var str="hello";
["h","e","l","l","o"] //计算机底层,字符串长度即为此类数组长度
字符串操作函数:
charAt(index):参数为index,返回值为index位置的字符
charCodeAt(index):参数为index,返回值为index位置字符的对应ASCII码。
concat():字符串拼接,相当于+""
slice():字符串截取
0:返回一个原字符串的复制字符串
1:index
从index位置开始截取,到字符串末尾结束
2:begin end
从begin位置开始截取,到end位置结束,不包含末尾
-1:最后一个字符
-------------参数个数为0----------
--------------参数个数为1-------------
-----------------参数个数为2-----------------
stustr( ):字符串截取
0:返回一个原字符串的复制字符串
1:index
从index位置开始截取,到字符串末尾结束
2:begin num
从begin位置开始截取,截取num个字符
--------------参数个数为0-------------
-----------------参数个数为1----------------
---------------------参数个数为2--------------------
stustring( ):
0:返回一个原字符串的复制字符串
1:index
从index位置开始截取,到字符串末尾结束
2:begin end
从begin位置开始截取,到end位置结束,不包含end
当end为负数,改变截取方向,从begin开始截取,截取至index=0,不包含begin位置的字符。
-----------------参数个数为0-------------------
-----------------参数个数为1----------------------
-------------------参数个数为2-------------------
indexOf(): 查找字符串,类似数组,从前往后查找,两个参数,第一个参数是所要查找的字符串,第二个参数为开始位置的下标。找到返回值为查找到的字符串对应下标,找不到返回-1,找到一个即返回,不再继续查找。
lastIndexOf(): 查找字符串,类似数组,从后往前查找,两个参数,第一个参数是所要查找的字符串,第二个参数为开始位置的下标。找到返回值为查找到的字符串对应下标,找不到返回-1,找到一个即返回,不再继续查找。
trim(): 去掉字符串的前后空格,没有参数
toLowerCase():将字符串转化为小写
toUpperCase():将字符串转化为大写
字符串操作函数(与正则相关):
search(): 搜索字符串
参数为字符串或正则表达式
找到返回下标,找不到返回-1,只找一个
--------------- 找到-------------
--------------找不到-------------
-------------------只找一个------------------
replace(匹配字符串,插入的值): 替换字符串 只查找并替换一个
参数为字符串或正则表达式
match(): 匹配字符串
参数为字符串或正则表达式
匹配成功,返回一个匹配成功的字符串组成的数组,匹配失败,返回null,只找一个,匹配结果放在一个数组中。
--------------------------找到--匹配字符串-----------------------
---------------------------找到--匹配字符-----------------------
---------------------------找不到----------------------------
split(): 找到分割字符,按找到的分割字符分割字符串,将分割后的字符组成一个数组
----------------不设参数------------返回值为字符串组成的数组
------------------设参数--“" "---------------返回值为将每一个字符当作一个数组元素进行分割后组成的数组
-------------------设参数---"-"------------------
2.Math对象
比较:
Math.min():返回一组数中的最小值
Math.max():返回一组数中的最大值
取整:
Math.ceil():向上取值
Math.floor():向下取整
Math.round():四舍五入
随机数:
Math.random():返回0到1之间的随机数,但不包含1
、 --------------不设参数-------------
--------------取1~10之间的随机数-------------
-----------------------例子:前世今生--------------------------
1) 创建一个数组,每个数组元素内存放对象,每个对象具有属性姓和名,相当于存在数据库中的古人的姓和名
2) 在前台获取数据库中的内容,拿数据库中的数据和用户输入的数据进行匹配,用prompt( )拿到前台输入内容,prompt( )返回值为前台输入内容。
3)声明一个变量result存放prompt( )返回值
4)用slice( )/substr( )/substring( )将获取到的前台数据切割为姓和名
5) 将拿到的姓和数组中的firstname进行匹配,匹配成功后拿到当前对象的lastname,拿到lastname之后,将firstname和lastname中任意一个结合起来,用random任意选,lastname在选取时,根据下标选,random范围在0~4且取整
6)将匹配到的firstname和随机抽取出的lastname进行数字符串拼接,输出拼接结果即为前世姓名。
-------------------------------前世今生--------------------------------
取绝对值:Math.abs( )
取对数:Math.log( )
---------以2为底,4的对数---------
三角函数:Math.sin( )/Math.cos( )/Math.tan( )/Math.cot( )
----------------Math.sin( )----------------
sin(Π/2)=1;打不出来Π,结果无限趋近1