字符串的定义
- JS字符串的概念 字符串就是一串字符,由双(单)引号括起来。 字符串是 JavaScript 的一种数据类型。
-
字符串的创建
- 方式一(推荐): var str = '海贼王'; //基本类型 定义了一个字符串变量str,内容为'海贼王'
-
方式二: var str = new String("火影"); //引用类型
定义一个字符串变量str,内容为火影,注意: 此刻str为引用类型(object对象)用new产生的变量都是引用类型的变量,也叫对象
- 方式三: var str = String('柯南');基本类型: string, number, boolean, undefined等引用类型/对象: Array , Date, Object, String, Function等
- new String()和String()的区别var s1 = new String('千与千寻');var s2 = String('千与千寻');console.log(typeof s1); //objectconsole.log(typeof s2); //string
当String()和元素符new一起使用, 那么String()是作为构造函数使用的,它返回的是一个新创建的String对象. (构造函数后面课程会讲)
当不用new运算符调用String()时,它只是转换成原始的字符串,并返回转换后的值.
字符串的属性
-
.length: 表示字符串的长度
例如 : var str = 'how are you';console.log(str.length); console.log(str[0]); //获取字符串中对应下标的字符
注意: ECMAScript 中的字符串是不可变的; 也就是说,字符串一旦创建,它们的值就不能改变.
例如: var str = 'how are you';str[0] = 'year'; //不会改变
如果要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量.
var str = hello'';str = str+'world!';字符串的获取
- str.charAt(x); 返回指定索引的字符
返回在字符串str里索引(位置、下标)为x的字符
- str.charCodeAt(x); 返回的是位于指定索引的字符的编码 (ASCII码)
返回在字符串str里索引为x的字符的编码(ASCII码)
- 将ASCII编码转换成字符 (该方法是String的静态方法,所以用String调用)
String.fromCharCode(73,76,79,86,69,85); //"ILOVEU"
字符串连接
- str.concat('xx','yy');字符串连接(连接多个用逗号分隔开)
字符串str连接字符串'xx','yy'
字符串查找
- str.indexOf('xxx'); 返回某个指定的字符串值在字符串中首次出现的位置
返回在字符串str里查找字符'xxx'第一次出现的位置(索引), 如果没找到则返回-1
- str.lastIndexOf('xxx'); 返回一个指定的字符串值最后出现的位置
返回在字符串str查找字符'xxx'最后一次出现(从后向前搜索)的索引, 如果没找到则返回-1
- str.search(): 查找第一次出现的位置, 但是参数可以是正则表达式
var str = "ABCdabcd";var index = str.search("abc");console.log(index); //4// /abc/ : 两个斜杠是正则表达式的语法(类似数组要写[]),中间就是你要匹配的字符串// g: global代表全局范围, i:ignore忽略大小写var index = str.search(/abc/gi);console.log(index);
字符串替换
- str.replace(); 替换字符串
//在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
//str.replace(参数1,参数2)//参数1是原字符串的某些字符,参数2是新替换的字符串内容//返回一个新的(重新替换后的)字符串例如: var str = 'how are Are are you!'; var newStr = str.replace('are','old are');这里的替换只能执行一次,不能够进行全局匹配,如果需要全局匹配,则应使用正则表达式: str.replace(/are/gi, "old are") //g表示进行全局匹配,i表示匹配的时候忽略大小写
字符串的截取与拆分
- str.substring(开始索引,结束索引); 截取字符串 范围是[开始索引,结束索引)
如果只有一个参数, 则表示到字符串最后
- str.split(separator, howmany); 根据分隔符、拆分成数组
separator(字符串或正则表达式)
howmany(可以指定返回的数组的最大长度, 可以省略)注:如果空字符串('')用作separator, 那么stringObject中的每个字符之间都会被分割。- str.toLowerCase(); 把字符串转换成小写
- str.toUpperCase(); 把字符串转换成大写
Math对象
Math对象可以用于执行数学任务
Math对象的常用函数:
Math.round(3.6) //四舍五入
Math.random() //返回0-1之间的随机数Math.max(num1, num2) //返回较大的数Math.min(num1, num2) //返回较小的数Math.abs(num) //绝对值Math.ceil(19.3) //向上取整Math.floor(11.8) //向下取整Math.pow(x, y) //x的y次方Math.sqrt(num) //开平方console.log(Math.round(3.49)); //3,四舍五入console.log(Math.random()); //随机数console.log(Math.max(3, 4)); //4,较大值console.log(Math.min(3, 4)); //3,较小值console.log(Math.abs(-3)); //3,绝对值console.log(Math.ceil(2.1)); //3, 向上取整console.log(Math.floor(2.9)); //2, 向下取整console.log(Math.pow(4, 3)); //64, 4的3次方console.log(Math.sqrt(64)); //8, 开根号