js string方法

String的创建方式

  • 字面量创建方式,存在栈中
  • 实例化创建方式,存在栈中
  • 构造函数创建方式,会创建一个字符型对象,存在堆中
// 字面量创建方式
var str="abc",str1='abd',str2=`abc`;

//实例化创建方式
var str4=String('abc');//存在栈中

//构造函数创建方式
var str5=new String('abc');//字符型对象,存在堆中
console.log(str4===str5);//false
console.log(str4==str5);//true

String的属性

  • length 字符串的长度
var str="abcdef";
//str[0]获取字符串下标是0的字符,只读,不能设置值
//str.length 长度 只读,只能获取字符串的字符个数,

//将字符串进行倒序
var len=str.length-1;
var str6="";
while(len>=0){
    str6+=str[len];
    len--;
}
console.log(str6);

String的方法

  • indexOf(),返回指定元素第一次出现的下标,没有的话返回-1
  • concat(),连接各字符串
  • charAt(),获取下标为1的字符
  • charCodeAt(),求字符串对应下标字符的Unicode编码
  • fromCharCode(),参数为Unicode编码,将Unicode编码转成对应字符
  • replace(n,m),字符串的替换,n为要查找的值,m为替换后的值或者回调函数,返回被替换的结果,原字符串不改变,仅能替换第一个被查找到的元素
  • slice(n,m),返回从下标n开始,到下标m之前的字符串;如果n为负数,倒着数,也就是变成(n+str.length);如果没有第二个参数,就会截取到尾部。
  • substing(n,m),字符串的截取,从下标n开始,截取到下标m之前,n不允许使用负数(负数就是0);如果没有第二个参数,就会截取到尾部。
  • substr(n,m),字符串的截取,从下标n开始,截取m个;如果n为负数,倒着数,也就是变成(n+str.length);如果m为负数,会被认为是0,返回空字符串;如果没有第二个参数,就会截取到尾部。
  • toLowerCase(),全部转换为小写。
  • toUpperCase(),全部转换为大写。
  • match(),以数组的形式返回找到的内容,没有找到返回null
  • search(),返回要查找参数的下标
  • split(),将字符串以参数为符号切割成数组
  • toString(),参数代表进制数,将字符转换成多少进制数 的结果
var str="abcdefghijklmn";
//获取下标为1的字符
console.log(str.charAt(1));//b

//替换字符串中指定的内容,返回被替换后的字符串,原字符串不改变
console.log(str.replace("a","b"));//bbcdefghijklmn

// substring不允许使用负数(负数就是0)
console.log(str.substring(-4,3));//abc
console.log(str.substring(0,4))//abcd

console.log(str.split());//[ "abcdefghijklmn" ]
console.log(str.split("").reverse().join(""));//nmlkjihgfedcba

console.log(str.search("a"));//0

console.log(str.match("a"));//[ "a" ]

console.log(str.charAt(1));//b

console.log(str.indexOf("b",1));//1
console.log(str.lastIndexOf("b"));//1

console.log(str.slice(0,1));//a

console.log(str.toUpperCase());//ABCDEFGHIJKLMN
console.log(str.toLowerCase());//abcdefghijklmn
扩展案例:获取由a-z A-Z 0-9 组成的随机数组
var arr = [];
//先通过对应的Unicode编码来获取到数组
for (var i = 48; i < 123; i++) {
	if (i > 57 && i < 65) continue;
	if (i > 90 && i < 97) continue;
	arr.push(String.fromCharCode(i));
}

//将数组乱序排列
/*var arr1=arr.sort(function () {
    return Math.random() - 0.5;
})*/

//将数组乱序排列
var arr1=[];
while(arr.length>0){
	var n=Math.floor(Math.random()*arr.length);
	arr1.push(arr.splice(n,1)[0]);
}
console.log(arr1);

使用 sort() 进行乱序排列时,不是公平乱序。推荐使用随机数方法对数组进行乱序排列。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值