为什么会有这种类型?

因为机器无法理解人类的语言,而我们又需要显示人类的语言。

"yo""mmp"在计算机眼里只是两串不同的字符而已,所以,当我们把一个商品的标题写为"发货地:西安"那就是我们的锅了,因为这个数据应该写在商品属性里,而不是标题上,而机器并不知道这两者的区别。

如何定义一段字符串?

很简单,用引号包起来就好

  • "yo" 双引号
  • 'yo' 单引号
  • 在JS中单双引号没有任何区别 "yo" === 'yo' // true
  • `我是个模板字符串,我叫 ${name} ` 使用`(反引号)定义模板字符串,可以传入变量,还可以直接断行

常用方法

获得字符串中的某一个字符

'yo'.charAt(0); // "y" 程序员是从0开始数的
'yo'.charAt(1); // "o"
'yo'[0]; // "y"

检查一段字符是否包含另一段字符

'花花你好'.includes('花花'); // true
'花花你好'.includes('拴蛋'); // false

用字符串将字符串分割为数组

'花花→_→拴蛋→_→背背'.split('→_→'); // ["花花", "拴蛋", "背背"]

连接字符串

'y'.concat('ooo', 'oo', 'o'); // "yoooooo",依次连接传入的字符,传参数量不限

截取字符串

var str = '王花花和小熊跳舞跳呀跳呀一二一'; 
str.slice(3, 8); // "和小熊跳舞",第一个传参为开始索引,第二个传参为结束索引
str.slice(3); // "和小熊跳舞跳呀跳呀一二一",若省略第二个传参将会截取至最后一个字符

.trim 移除两头的空格

'  yo  '.trim(); // "yo"
'  yo'.trim(); // "yo"

注意

  • 不加引号的字符会被JS认为是变量,所以字符串一定是加引号的
    var greet = yo;  // ReferenceError(引用错误) 变量yo没有定义
  • 单双引号定义的字符串不可直接断行,断行可以需使用加号连接
    '他好
    我也好' // SyntaxError(语法错误)
    // -----------------------
    '他好' +
    '我也好' // '他好我也好'
  • 字符串与数字运算时需要格外小心
    '1' + 1 // "11" 坑
    1 + "1" // 2
    1 + "1" // 2
    2 * "2" // 4 (O_o)???
    "2" * 2  // 4 (O_o)???
登录后评论