12.15 Sting-数据类型详解

为什么会有这种类型?

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

"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(语法错误)
    // -----------------------
    '他好' +
    '我也好' // '他好我也好'
  • 字符串与数字运算时需要格外小心

        console.log(1+"2"+"2");

        console.log(1++"2"+"2");

        console.log("A"-"B"+"2");

        console.log("A"-"B"+2);

 

1.  console.log(1+"2"+"2");

做加法时要注意双引号,当使用双引号时,Javascript会认为是字符串,字符串相加等于字符串合并。这里是122

2. console.log(1++"2"+"2");

第一个+“2”中加号是一个一元加操作符,+“2”会变成数值2,因此1++”2“=3,然后和后面的字符串”2“相合并,就变成了32

3. console.log("A"-"B"+"2");

"A"-"B" 的运算,需要先把“A"和”B"使用函数Number() 转为数值,结果为NaN,在减法操作中,如果有一个是NaN,则结果就是NaN,因为"A"-"B"的结果为NaN,然后和“2”合并,就变成了NaN2

4. console.log("A"-"B"+2);

根据上题所述,"A"-"B"结果为NaN,然后和数值2进行加法操作,在加法操作中,如果有一个操作数是NaN,则结果为NaN

 

 

 

你可能感兴趣的:(JavaScript)