字符串就是一串字符,由双(单)引号括起来。字符串是 JavaScript 的一种基本的数据类型。
二:定义字符串
1、var str1 = '我就是我,不一样的烟火';
普通字符串(放在常量池中)
2、var str2 = new String('做人可自信,不可自傲');
字符串对象,会在堆中开辟内存
new 创建(开辟内存)
String 字符串对象
注意:字符串的内容仍是放在常量池中,地址存在新开辟的内存中
三:字符串属性--length
字符串的长度(有多少个字符)
注意:一个汉字算一个字符
如:var str = new String('第10名');
console.log(str.length); //4
四:字符串的获取方法
var str = 'abc123';
str.charAt(3) //获取下标为3的字符
str.charCodeAt(3) //获取下标为3的字符的编码(ASCII码)
String.fromCharCode(94) //编码转换成字符
五:字符编码
ASCII码
ASCII码于1961年提出,用于在不同计算机硬件和软件系统中实现数据传输标准化,在大多数的小型机和全部的个人计算机都使用此码。
基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等,另外还有 32 个控制字符
GBK
GBK即汉字内码扩展规范,K为扩展的汉语拼音中“扩”字的声母。
GB2312码是中华人民共和国国家汉字信息交换用编码
GBK是对GB2312-80的扩展
Unicode
解决不同的编码导致乱码的问题
将世界上所有的符号都纳入其中,无论是英文、日文、还是中文等,大家都使用这个编码表,就不会出现编码不匹配现象。每个符号对应一个唯一的编码,乱码问题就不存在了。
UTF-8
为了提高Unicode的编码效率
UTF-8可以根据不同的符号自动选择编码的长短。比如英文字母可以只用1个字节就够了。
六:字符串的查找方法
indexOf("abc") 查找字符串第一次出现的位置,如果没找到 返回-1
var str = '123abc'; console.log(str.indexOf('b')); //4
lastIndexOf("abc") 查找字符串最后一次出现的位置 如果没找到 返回-1
var str = '123abc'; console.log(str.lastIndexOf('b')); //4
说明:indexOf 和 lastIndexOf 都是从第一个字符开始查找
search 和 match 在这里不讲,牵涉到正则,以后正则讲
七:字符串替换--replace
var str = '数字:1234';
str.replace(old,new); 将字符串中一部分替换为某个新的一部分,不操作原字符串,返回新的字符串,如需改变,可给原字符串重新赋值 只会替换第一次找到的(即使有多个需要替换的,也只替换第一个)
str.replace('数字','新数字'); //返回'新数字:1234'
console.log(str); // '数字:1234'
体验:
编写全部替换功能,功能名为replaceAll,传入原字符串和要替换的字符,返回新字符串
将所有的字母a替换为A
var str = '123ab21ab';
str = replaceAll(str,'a');
console.log(str); // '123Ab21Ab'
八:字符串比较
== 比较 能进行类型转换的时先进行类型转换再比较(比较的是地址)
=== 比较 直接比较地址
九:字符串的截取方法
substring 用于提取字符串中介于两个指定下标之间的字符串,返回新的字符串,不操作原字符串。
stringObject.substring(start,stop);
返回的子串包括 start 处的字符,但不包括 end 处的字符。
substr 返回一个从指定位置开始的指定长度的子字符串。
stringObject.substr(start , length);
如果 length 为 0 或负数,将返回一个空字符串。
如果没有指定该参数,则子字符串将延续到stringObject的最后。
十:字符串分割
split 根据分隔符、拆分成数组 , 不操作原字符串
var fruit = '苹果,橘子,香蕉,葡萄';
var fruitArr = fruit.split(',');
// ["苹果", "橘子", "香蕉", "葡萄"]
十一:字符串大小写转换
toLowerCase 全部转化为小写 不是操作原字符串
toUpperCase 全部转化为大写
十二:Math对象
Math.round(3.6) //四舍五入
random() //返回0-1之间的随机数
max(num1, num2) //返回较大的数
min(num1, num2) //返回较小的数
abs(num) //绝对值
ceil(19.3) //12 向上取整
floor(11.8) //11 向下取整
pow(x,y) //x的y次方
sqrt(num) //开平方
前几周在做项目,没有时间分享。
下节:Date对象
热门评论
你好,关于常量池哪里有介绍么,我似乎找了很多地方都没有介绍的