共计 2618 个字符,预计需要花费 7 分钟才能阅读完成。
字符串的定义
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, 开根号