原始类型包装类
1:new 包装器(值)
2:包装器(值):返回的是一个原始类型
Number
静态成员
- isNaN: 确定传递的值是否是 NaN。=== window.isNaN
- isFinite:判断一个数字是否是有限的
- isInteger:判断一个数据是否是整数【int】
- parseFloat: 将一个数据转换为小数
- parseInt:将以一个数据转换为整数,直接舍去小数部分
parseInt、parseFloat要求参数是一个字符串,如果不是字符串,则会先转换为字符串。
从字符串开始位置进行查找,找到第一个有效的数字进行转换,如果没有找到,则返回NaN,左右空白字符会忽略
parseInt,可以传入第二个参数,表示将给定的字符串,识别为多少进制。
实例成员
- toFixed方法:会有四舍五入
- toPrecision:以指定的精度返回一个数字字符串
Boolean
String
静态成员
- fromCharCode:通过unicode编码创建字符串
实例成员
- length:字符串长度
字符串是一个伪数组
- charAt:得到指定位置的字符
- charCodeAt:返回表示给定索引的字符的Unicode的值。
- concat:连接两个字符串文本,并返回一个新的字符串。
- includes:判断一个字符串里是否包含其他字符串。
- endsWith:判断一个字符串的是否以给定字符串结尾,结果返回布尔值。
- startsWith:判断字符串的起始位置是否匹配其他字符串中的字符。
- indexOf:从字符串对象中返回首个被发现的给定值的索引值,如果没有找到则返回-1。
- lastIndexOf:从字符串对象中返回最后一个被发现的给定值的索引值,如果没有找到则返回-1。
- padStart:在当前字符串头部填充指定的字符串, 直到达到指定的长度。 返回一个新的字符串。
- padEnd:在当前字符串尾部填充指定的字符串, 直到达到指定的长度。 返回一个新的字符串。
- repeat:返回指定重复次数的由元素组成的字符串对象。
- slice:从某个位置取到某个位置;位置可以是负数;
- substr: 从某个位置开始取,取指定的长度;位置可以是负数;
- substring:从某个位置取到某个位置;不可以是负数;参数位置是可调换的。
- toLowerCase:将字符串转换成小写并返回。
- toUpperCase:将字符串转换成大写并返回。
- split:分割字符串
练习
//找到某个字符串中出现最多的字符,打印字符和它出现的次数
s = "vfnfnvnbwijrfowrjcvnbsjfvfdvnkjcruto";
//将字符串转变为数组
var arr = Array.from(s);
//构造函数
function getTopArray(arr){
var records = {};//记录出现的次数
for(var i=0;i<arr.length;i++){
var n = arr[i];
if(records[n]){
records[n]++;//出现一次累加一次
}else{
records[n] = 1;//频率至少有一次
}
}
var result;//记录结果
for(var prop in records){
if(!result || records[prop] > result.frequency){
result = {
number:prop,
frequency:records[prop]
};
}
}
return result;
}
console.log(arr);
console.log(getTopArray(arr));
//将字符串(类似英语句子)间空格去掉,并将每个单词首字母大写 【大驼峰】bigCamel
var s = "hello\t my\n good\r friend"; // \t:制表符 \n:换行符 \r:回车
var ss = "hello my good friend";
console.log(s);
console.log(ss);
//写一个函数【法一】
// function bigCamel(s) {
// var result = "";
// var empties = " "; //专门放空白字符串
// for (var i = 0; i < s.length; i++) {
// if (s[i] !== " " && s[i] !== "\t" && s[i] !== "\n" && s[i] !== "\r") {
// //拼接
// //判断s[i]是否为首字母 ==>【首字母前边 s[i-1] 为空白字符】
// if (empties.includes(s[i - 1]) || i === 0) {
// result += s[i].toUpperCase();
// } else {
// result += s[i];
// }
// }
// }
// return result;
// }
// console.log(bigCamel(s));
//法二
function bigCamel(ss){
//只考虑空格分隔 ==> 变成数组
return ss.split(" ").filter(function(item){
return item.length > 0;
}).map(function(item){
return item[0].toUpperCase() + item.substring(1).toLowerCase();
}).join("");
//不要空白字符:ss[i].length>0
}
console.log(bigCamel(ss));
<script>
/**
* 得到一个最小值到最大值之间的随机数【min,max】
* Math.random()*(max-min) +min; ==>为小数
* 转换整数: parseInt
* parseInt(Math.random() * (max + 1 - min) + min); ==>负数会出现问题
* max + 1 - min:可以取到最大值
* @param {*} min
* @param {*} max
*/
var MyFun = {
getRandom: function (min, max) {
return Math.floor(Math.random() * (max + 1 - min) + min);
}
}
</script>
<script>
//产生一个指定长度的随机字符串,字符串只能包含大写字母,小写字母和数字
function getRandomString(len) {
//先来一个模板字符串【要用的字符全写进去】,在该字符串中随机的取6次,最后拼接到一起
// var template = "abcdefghijklmnopqrstuvwxyzABCDEF123"//有点麻烦【手写】
//利用编码写
var template = ""; //模板
//大写字母
for (var i = 65; i < 65 + 26; i++) {
//每循环一次,进行拼接
//静态方法:把编码传进去转成对应编码的字符串
template += String.fromCharCode(i);
}
//小写字母
for (var i = 97; i < 97 + 26; i++) {
template += String.fromCharCode(i);
}
//数字
for (var i = 48; i < 48 + 10; i++) {
template += String.fromCharCode(i);
}
//取字符串
var result = ""; //结果
for (var i = 0; i < len; i++) {
//从模板中随机取出一位字符
//下标取随机数
var index = MyFun.getRandom(0, template.length - 1)
result += template[index];
}
return result;
}
//测试,调用这个函数,产生6位的随机字符串
console.log(getRandomString(6));
</script>
//将字符串按照字符编码的顺序重新升序排序
//数组实例方法:sort()升序 , reverse()降序(反转)
var s = "dgrhkhiuiuy kdsnvksnoxnos nox23543"
//Array.from 【将字符串变成数组】 sort【默认按照编码排序】join【拼接】
var result = Array.from(s).sort().join("");
var result1 = Array.from(s).sort().reverse().join("");
console.log(result);
console.log(result1);
/*
从一个标准的身份证号中取出用户的出生年月日和性别,保存到对象中
例如,"524713199703020014"
得到对象:
birthYear: 1997
birthMonth: 3
birthDay: 2
gender: "男" // 性别看倒数第二位,奇数为男,偶数为女
*/
//写一个函数
function getInfoFromPID(pid) {
return {
//birthYear: +pid.substr(6,4),//【第6位,取4位】 +:将字符串转为数字
birthYear: parseInt(pid.substr(6, 4)),
birthMonth: +pid.substr(10, 2),
birthDay: +pid.substr(12, 2),
//长度-1:最后一位
gender: pid[pid.length - 2] % 2 === 0 ? "女" : "男" //偶数:女 否则:男
}
}
console.log(getInfoFromPID("524713199703020014"));