JavaScript 字符串简介

字符串的定义

  • 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); //object
    console.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, 开根号
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章