一、字符串:
字符串:多个字符组成的只读字符数组(只读:字符串所有的API都是不会修改原字符串,只会返回一个新字符串)、
和数组相同点:字符串的个数:str.length
获取字符串中某个字符也是用下标
可以遍历字符串
所有数组不修改原数组的API,字符串也可以使用(concat--拼接数组,slice--截取数组)
所有数组直接修改原数组的API,字符串都不能使用
原始数据类型:5个:string、number、boolean、NaN、undefined
引用/对象类型:11个:
string、number、boolean(这三个是包装类型)
Array Function Date(日期)、math(数学,提供计算)、RegExp(正则:验证)、Error(错误对象)、object(面向对象)、global(全局对象)
包装类型:专门将原始类型的值封装为一个引用类型的对象。原始类型的值本身不具备任何属性和方法,意味着原始类型本身不能使用或操作;三个包装类型的对象是前辈们把原始类型的值变成引用类型的对象,(提供了属性和方法)
只要试图用原始类型的变量,调用属性和方法时,自动包装,方法调用完毕后,自动释放,并且返回数据
二、字符串的API:
1、转义字符:
\"":将字符串中和程序冲突的字符转为原文
\n:js中控制台会换行
输出unicode编码的字符;第一个汉字:unicode:4e00 ascii:19968 最后一个汉字:unicode:9fa5 ascii:40869
2、大小写转换:
将字符串中每个英文字母统一转为大写或小写:一般在验证码之类的地方使用
大写:var new=str.toUpperCase();
小写:var new=str.toLowerCase();
3、获取字符串指定位置的字符:str.charAt(下标),和str[i]一个意思
4、将字符串指定位置的字符转成ascii码:var new=str.charCodeAt(下标)
通过asc码转回原文:var 原文=String.fromCharCode(new);
//将字符转成asc码
btn1.onclick= function jm(){
var secret="每當變幻時";
for(i=0,asc="";i<secret.length;i++){
//生成一个1到9的随机整数
var r=parseInt(Math.random()*(9)+1),
//给每个asc码*十万,相当于asc码加了一位数字
x=secret.charCodeAt(i)+r*100000;
asc+=x;
}
console.log(asc)
//再转换成原文
for(i=0,new2 ="";i<asc.length;i+=6){
//截取asc数组,从i+1开始,就是0+1,到第六位结束
var jm=asc.slice(i+1,i+6);
new2 +=String.fromCharCode(jm);
}
console.log(new2)
}
5、检索字符串:获取关键字的下标:
var i= str(或数组).indexof(关键字,下标)----下标可以不写,那就是默认从下标0开始检索。
如果找到,i等于关键字的下标,如果没找到,i=-1,可以用来判断有没有
找到某个关键字在字符串中所有位置的固定用法:
var str="no zuo no die no can no bibi",
i=-1;
while((i=str.indexOf("no",i+1))!=-1){
console.log("no的位置在:"+i);
}
6、截取字符串:
1、var new=str.slice(开始下标位置,结束下标位置),这个方法会含头不含尾,支持负数,-n代表倒数第几个
2、 str.substring(starti,endi);数组不能用,和第一个相似
3、var new=str.substr(开始下标位置,截取几个);也支持负数,但是他是截取个数,数组不能用
7、拼接字符串:
var new=str.concat(新元素);这个方法还不如直接用+运算来实现
8、替换字符串:
var new=str.replace("关键字",新内容);直接将字符串内所有都替换
9、切割字符串:
可以将字符串转为数组,var new=str.split("切割符")
切割符就不在了,字符串会变为数组。
var user=prompt("输入邮箱:");
var cutting=user.split("@");
alert("你的用户名是:"+cutting[0]);
alert("你的域名是:"+cutting[1]);
var i= user.indexOf("@");
console.log(i)
扩展:
1、js创建空元素:var new=document.createElement("")
2、为此元素设置必要的属性或样式new.属性名=属性值;new.on事件名=function(){}
3、渲染到dom树中:new的父元素.appendChild(new)