字符串API

196 阅读3分钟

*** 引用类型的对象:11个

String(字符串) Number(数字) Boolean(布尔) - 具有包装类型

Array(数组) Function(函数) Math(数学) Date(日期) RegExp(正则) Error(错误) Object(面向对象)

Global - 全局对象:在浏览器端被window对象给代替了:window对象可以省略不写出来
  • 包装类型:将原始类型的值变为一个引用类型的对象

  • 为什么:前辈们发现字符串/数字/布尔经常都会被拿来使用,所以提前提供了包装类型封装为一个引用类型的对象,提供我们一些属性和方法(便于程序员操作)

  • 何时使用:只要在你试图用原始类型的值去调用属性或者方法时,会自动套上包装类型

  • 何时释放:属性或方法调用完毕后,包装类型自动释放

  • 为什么undefined和null不能使用: 不具有包装类型,没有任何的属性和方法

String API - 概念很重要

String的概念:string:字符串:多个字符组成的String的概念:string:字符串:多个字符组成的只读】字符【数组

  • 只读:字符串中的所有的API都不会修改原字符串,只会返回新字符串

  • 为什么字符串也可以叫数组呢?

      **和数组有共同点:
      	1、支持下标 - 获取某个字符
      	2、支持length - 字符的长度
      	3、遍历
      	4、数组不修改原数组的API,字符串也可以使用(concat、slice)
    
      **不同点:数组修改原数组的API,字符串都不可以使用,但是字符串也有很多属于自己的API
    

*****String API:

1、转字符串:\

作用:3个
    1、字符串中如果出现了和字符串冲突的符号,可用\将其转义为原文
       \"	\'

    2、特殊功能:
  	换行:\n
  	制表符:\t

    3、*可以书写unicode号 表示一个字
  	\uXXXX
  	汉字的第一个字:4e00
  	汉字的最后一个字:9fa5

2、*转换大小写:【统一的】转为大写或小写,再比较,忽略大小写:- 验证码

大写:var newStr=str.toUpperCase();
小写:var newStr=str.toLowerCase();

举例:
    将用户输入的字符和随机生成的验证码同时转为大写或小写在进行比较判断:
     if (user.toUpperCase() == code.toUpperCase()) {
       document.write('验证成功');
     } else {
       document.write('验证失败');
     }
     

点击跳转到最low的验证码生成的JS源码

3、获取字符串中指定位置的字符的ascii码

var ascii=str.charCodeAt(i);

 通过ascii码转回原文
 var 原文=String.fromCharCode(ascii);

4、*检索字符串:检查索引/下标:从starti位置开始找右侧的第一个关键字的下标

作用:判断有没有
     var i=str/arr.indexOf("关键字",starti);
     
特殊:
     1、starti可以省略,如果省略则从0开始
     2、返回值:找到了,返回第一个字符的下标
	    ***没找到,返回-1,其实我们根本不关心下标是几,只关心下标是不是-1,-1代表没找到,不是-1代表找到了
 3、数组也可以使用此方法
 4、鄙视题:找到所有关键字的位置
	    var str="no zuo no die no can no bibi";
	    var i=-1;
	    while((i=str.indexOf("no",i+1))!=-1){
	    	console.log("找到了:"+i);
	    }

5、拼接字符串:var newStr=str.concat(str1,str2...) 还不如 +运算

6、*截取字符串:3个

1、**var subStr=str/arr.slice(starti,endi+1);
2、var subStr=str.substring(starti,endi+1);//不支持负数参数
3、*var subStr=str.substr(starti,n);//截取的个数,不必考虑含头不含尾

7、*替换字符串:今天不屌,需要有了正则表达式才会牛逼

var newStr=str.replace("关键字"/正则表达式,"新内容");

8、*****切割/分割字符串:作用:str <=> arr

var arr=str.split("自定义切割符");

特殊:
    1、切割符可以自定义,切割过后返回一个数组,数组中不再包含切割符
    2、如果传入的切割符是一个"",每一个字符都会被切开
    

9、str.trim():

作用:去除字符串前面和后面的空格,制表符等;

扩展:创建元素并且渲染页面

1、创建空标签

var elem=document.createElement("标签名");

2、设置必要的属性或事件

elem.属性名="属性值";
elem.on事件名=function(){函数体} - 事件都可以在创建时提前绑定上

3、创建好的元素渲染到DOM树上

父元素.appendChild(elem);

注意 : 渲染的时候,先创建在一块渲染放到DOM树上,减少浏览器加载负担渲染的时候,先创建在一块渲染放到DOM树上,减少浏览器加载负担