JavaScript学习笔记之string

字符串定义:

1,var myString=“内容”;or var myString=‘内容’

2,var myString= new String(“内容”)           ---〉创建对象,但是会增加开销

内容:

1,在双引号(单引号)里加入单引号(双引号)不需要转义,如果在双引号(单引号)里加双引号(单引号)则需要

2,字符串默认只能利用一行进行定义不可换行,如需要分成多行,可以利用 \ 在换行前进行设置;(老式浏览器不支持)

3,常用转义序列:

          \t              制表符                
          \n 换行,在字符里插入一个换行
          \" 双引号
          \‘ 单引号
          \\ 反斜线
        \x99 ASCII字符的值,以2位16进制表示
        \u9999 统一编码字符的值,以4位16进制表示

4,字符与数组(相同点)

字符串可以像数组一样拿来操作:

也可以拿字符串直接操作:

若[]里面的值,不是数字,或者超出范围,或者使用字母:

字符串与数组的相似性仅以上内容,字符串是类似数组的对象,无法改变字符串之中的单个字符。字符串也无法添加新属性。

字符串内部的单个字符无法改变和增删。length属性(从1开始算)返回字符串的长度,该属性也是无法改变的。但是不会报错

解析:

在JavaScript内部,变量s其实指向字符串“Hello World”的地址,而“Hello World”本身是一个常量,所以无法改变它,既不能新增,也不能删除。

另一方面,当一个字符串被调用属性时,它会自动转为String对象的实例,调用结束后,该对象自动销毁。这意味着,下一次调用字符串的属性时,实际是调用一个临时生成的新对象,而不是上一次调用时生成的那个对象,所以取不到赋值在上一个对象的属性。如果想要为字符串添加属性,只有在它的原型对象String.prototype上定义

5,base64编码

  • btoa():字符串或二进制值转为Base64编码
  • atob():Base64编码转为原来的编码

字符传递:

若要给函数传递字符不能使用“”双引号传递,而是要用‘’单引号传递,使用“”会难以操作。

为函数传递number时可以不加引号,但是传递字符一定要加引号,否则会出现未定义的错误。

字符连接:

使用+对字符进行组合    string1+string2。

String 对象:

String对象的实例是一个类似数组的对象。

String还可以当作工具方法使用,将任意类型的值转为字符串。

String.fromCharCode():String对象直接提供的方法,主要是fromCharCode()。该方法根据Unicode编码,生成一个字符串。

length属性:该属性返回字符串的长度

charAt()方法:该方法返回一个指定位置的字符(从0开始),但是此方法可以用数组下标代替

charCodeAt()方法:该方法返回给定位置字符的Unicode编码(十进制表示)

concat()方法:用于连接两个字符串。使用该方法后,原字符串不受影响,返回一个新字符串。可以接受多个字符串       但是,一般来说,字符串连接运算还是应该使用加号(+)运算符比较好。

substring()方法,slice方法,substr方法:这三个方法都用来返回一个字符串的子串,而不会改变原字符串。它们都可以接受一个或两个参数,区别只是参数含义的不同。

substring(起始位置(带上字符),终止位置(不带上字符)):如果出现第一个参数大于第二个参数的情况,substring方法会自动更换两个参数的位置。

slice(起始位置(带上字符),终止位置(不带上字符)):如果第一个参数大于第二个参数,slice方法并不会自动调换参数位置,而是返回一个空字符串。

substr(起始位置(带上字符),取多少个字符):第一个参数是子字符串的开始位置,第二个参数是子字符串的长度。

负数:

对于substring方法,会自动将负数转为0。

对于substr方法,负数出现在第一个参数,表示从尾部开始计算的字符位置(length+负值);负数出现在第二个参数,将被转为0。

对于slice方法,表示字符位置从尾部开始计算。(length+负值)

indexOf()方法:用于确定一个字符或多个字符在字符串中的位置,从头部开始匹配,若有第二个参数表示从哪个位置开始找(从0开始),不匹配返回-1

lastIndexOf()方法:用于确定一个字符或多个字符在字符串中的位置,从尾部开始匹配,若有第二个参数表示从哪个位置开始找(从0开始),不匹配返回-1

trim()方法:此方法用于去除字符串两端的空格

toLowerCase()和toUpperCase()方法:分别是把字符串转变为小写字母和大写字母

localeCompare()方法:比较字符串:string1=string2,返回0。string1>string2,返回1。string1<string2,返回-1。这个比较不同于我们平常的数字大小比较,也不是比较字符串谁长。而是一位一位的比较,若第一位相等,则比较第二位,只要第二位比较出大小就不用继续往下比较,直接得出大小,所以js的比较大小是一位一位的比较的:

替换和搜索(重要,常用):

match()方法:搜索字符串中是否有匹配的字符串

match方法返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null。

返回数组还有index属性和input属性,分别表示匹配字符串开始的位置(从0开始)和原始字符串。

search()方法:直接返回index,开始的第一个位置,如果没有找到匹配,则返回-1。不可遍历

replace()方法:替换字符,replace(旧,新),默认只更改第一个检索到的字符。

利用正则表达式可以使所有的字符都改变:

split()方法:分割字符串split("按照什么条件来切割"),把字符保存到数组里,返回一个新数组。可以接受第二个参数,限定返回数组的最大成员数(可以利用这个方法使字符串转化为数组)

如果满足分割规则的部分处于字符串的开头或结尾(即它的前面或后面没有其他字符),则返回数组的第一个或最后一个成员是一个空字符串。

字符串与数值之间的转换:

parseInt(string): 字符串转化为int类型;

parseFloat(string): 字符串转化为float类型;

toString(number):数值转化为字符串;

参考链接:http://javascript.ruanyifeng.com/stdlib/string.html

时间: 2024-11-25 06:18:23

JavaScript学习笔记之string的相关文章

javascript学习笔记(三) string对象中的正则表达式

1. search返回匹配到的位置(-1找不到) var str = 'html js' var pattern = /js/ str.search(pattern)    --------->5 2. Match str.match(pattern) --------['js'] /js/g -----> ["js", "js",,"js"] match vs exec match:非全局的情况下才会返回分组中匹配到的内容,全局匹配

javascript学习笔记---ECMAScript-判断变量类型

判断类型之前,先要清楚有哪些类型. (理理思路:程序由数据和方法构成,数据由简单数据和复杂数据构成) 即类型有: 数据(简单数据:boolean,string,num,undefined,null.复杂数据:object), 方法(function) 万能的typeof,神一样的方法 typeof(1);// num typeof("hello");// string   typeof(false);// boolean var vFlag; typeof(vFlag);// unde

javascript学习笔记---ECMAScript语法(引用类型)

引用类型通常叫做类(class). 本教程会讨论大量的 ECMAScript 预定义引用类型. 引用类型 引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象. 本教程会讨论大量的 ECMAScript 预定义引用类型. 从现在起,将重点讨论与已经讨论过的原始类型紧密相关的引用类型. 注意:从传统意义上来说,ECMAScript 并不真正具有类.事实上,除了说明不存在类,在 ECMA-262 中根本没有出现"类"这个词.ECMAScript 定义了"对象定

javascript学习笔记---ECMAScriptECMAScript 对象----定义类或对象

使用预定义对象只是面向对象语言的能力的一部分,它真正强大之处在于能够创建自己专用的类和对象. ECMAScript 拥有很多创建对象或类的方法. 原始的方式 因为对象的属性可以在对象创建后动态定义(后绑定),类似下面的代码: var oCar = new Object; oCar.color = "blue"; oCar.doors = 4; oCar.mpg = 25; oCar.showColor = function() { alert(this.color); };不过这里有一

javascript学习笔记---ECMAScriptECMAScript 对象----修改对象

通过使用 ECMAScript,不仅可以创建对象,还可以修改已有对象的行为. prototype 属性不仅可以定义构造函数的属性和方法,还可以为本地对象添加属性和方法. 创建新方法 通过已有的方法创建新方法Number.prototype.toHexString = function() { return this.toString(16); }; 在此环境中,关键字 this 指向 Number 的实例,因此可完全访问 Number 的所有方法.有了这段代码,可实现下面的操作: var iNu

javascript学习笔记---ECMAScript运算符(逻辑运算符)

Boolean 运算符非常重要,它使得程序语言得以正常运行. Boolean 运算符有三种:NOT.AND 和 OR. ToBoolean 操作 在学习各种逻辑运算符之前,让我们先了解一下 ECMAScript-262 v5 规范中描述的 ToBoolean 操作. 抽象操作 ToBoolean 将其参数按照下表中的规则转换为逻辑值: 参数类型 结果 Undefined false Null false Boolean 结果等于输入的参数(不转换) Number 如果参数为 +0, -0 或 N

Java程序猿的JavaScript学习笔记(5——prototype和Object内置方法)

计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Java程

JavaScript学习笔记——js变量的布尔值

typeof(1): numbertypeof(NaN): numbertypeof(Number.MIN_VALUE): numbertypeof(Infinity): numbertypeof("123"): stringtypeof(true): booleantypeof(window): objecttypeof(Array()): objecttypeof(function(){}): functiontypeof(document): objecttypeof(null)

Java程序员的JavaScript学习笔记(14——扩展jQuery UI)

计划按如下顺序完成这篇笔记: Java程序员的JavaScript学习笔记(1--理念) Java程序员的JavaScript学习笔记(2--属性复制和继承) Java程序员的JavaScript学习笔记(3--this/call/apply) Java程序员的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序员的JavaScript学习笔记(5--prototype) Java程序员的JavaScript学习笔记(6--面向对象模拟) Java程序员