今天接着说数值和字符串的内容。布尔值:布尔类型的数据只有两个,真值true,假值false。常用于逻辑操作中的判断。


var answer = confirm("确定删除吗?); // 返回true或false

布尔值,不能放在引号内,否则按照字符串处理。


var ok = false; // 正确var ok = "false"; //错误

当把布尔值转换为数值时,JavaScript会自动把true转换为1,false转换为0。当把数值需要转换为布尔值时,JavaScript会把非0值转换为true,把0值转换为false。非操作符!:“!”位于布尔值得前面时,说明对布尔值进行取反操作,就是真值变假值,假值变真值。


var ok = false;!ok; // true

null空和undefined未定义:它们两个是有区别的,当你想让变量的值有效,但是又不准备给具体的值,可以赋值null给变量。但是你声明了变量,却没有赋值时,它一般会自定义为undefined。你可以这样理解,在JavaScript中,null算是有值的,它的值是明确的null,但是undefined表示,值不确定,没给值。字符串:它的定义是由一对单引号和双引号包含实现的。比如:


var myString = "This is my Dream";

在JavaScript中,使用单引号的字符串也是正确的


var myString = 'this is my dream';

那么你会想,有什么区别吗?在JavaScript中,区别不大,可以认为是一样的,但是使用时需要成对出现,不能单引号配双引号。当字符串中也需要出现单引号或者双引号时,怎么处理呢?这就需要用到转义字符了。


var myStr = "this is my \"father\".";

当反斜杠出现后,其后的单引号或者双引号,就按照字符串内部的引号处理,不参与收尾的引号运算。length属性:可以返回该字符串所含字符的数量。


var myString = "How long am I";myString.length; // 14

空格也是算作字符的。length属性的值是只读的。转义序列:有一些特殊字符,需要反斜杠开头来表示,我们通常把这些字符都统称为转义序列。


转义序列

代表的字符

\t

制表符

\n

换行

\"

双引号

\'

单引号

\\

反斜线

\x99

ascii字符值,以2位十六进制的数值表示

\u9999

统一编码字符,以4位十六进制数值表示

字符串的一些常用方法:


方法

描述

concat

连接字符串,返回结果字符串

indexOf

返回指定值在字符串内第一个出现时的位置

lastIndexOf

返回指定值在字符串内最后一个出现的位置

replace

使用指定值替换字符串

split

将字符串分解为子串,保存至数组中

substr

截取字符串

toLowerCase

把字符串全部小写

toUpperCase

把字符串全部大写

concat方法:


var str1 = "i have a ";var str2 = " dream.";var newStr = str1.concat(str2); // i have a dream.

在JavaScript中,字符串一旦建立,是不可能修改的。当我们使用concat函数方法去连接字符串时,不会对字符串的值改变,一般都是基于原字符串生成副本,拼接处新字符串后,返回新字符串,然后程序结束时,销毁原字符串的。indexOf方法:


var string1 = "the quick brown fox";string1.indexOf('fox'); // 返回16string1.indexOf('dog'); // 返回-1

字符串的索引是从0开始的,不是从1开始。返回-1,说明没有找到。lastIndexOf方法:


var str3 = "i am a boy boy boy";alert(str3.lastIndexOf('boy')); //返回15

replace方法:


var string1 = "the quick brown fox";var string2 = string1.replace("brown","orange"); // the quick ornage fox

split方法:


var string1 = "the quick brown fox ";var newArray = string1.split(" ");

函数参数是指定以空格作为分隔符,数组中依次含有的就是单词the,quick,brown,fox。substr方法:


var string1 = "the quick brown fox";var sub1 = string1.substr(4,11);  //返回 quick brownvar sub2 = string1.substr(4); // 返回 quick brown fox

截取字符串是比较常用的函数方法,参数1表示从第几位开始,参数2表示截取至多少位,如果不带参数2,表示截取至字符串尾部。toLowerCase和toUpperCase:


var string1 = "the quick brown fox";var turnStr = string1.tolowerCase();  // the quick brown foxvar turnStr2 = string1.toUpperCase(); // THE QUICK BROWN FOX

模板字符串:


var name = "John";var girl = "Lucy";var string1 = `Hi ${girl}, i am ${name}, I love you!`;

这里需要注意一下,模板字符串使用的引号不是单引号,也不是双引号,而是反单引号,在键盘上的位置是ESC下面的那个按键。当我们需要一个固定的格式字符串,就可以先定义一个模板字符串,然后将变量值改变,字符串的值也会随之改变。下节我们说数组的内容。