手记

Kevin带你飞(6): JavaScript-字符串

一:字符串的概念和定义

字符串就是一串字符,由双(单)引号括起来。字符串是 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对象

1人推荐
随时随地看视频
慕课网APP

热门评论

你好,关于常量池哪里有介绍么,我似乎找了很多地方都没有介绍的

查看全部评论