JS笔记1:基本数据类型及逻辑运算
JS基本数据类型
1 | <script type="text/javascript" src="js/scrpit.js"> |
- 标识符只允许数字、字母、下划线和$,且不允许以数字开头
1 | let a_1_$ = 123; |
5种基本数据类型 String、Number (整数和浮点数)、Boolean (true 和 false)、Null (null)、Undefined (undefined) 和 1 种引用数据类型 Object
typeof 运算符的返回类型为字符串,值包括 ‘undefined’ 、’boolean’、’string’、 ‘number’、’object’ 和’function’
1 | console.log(typeof NaN); // "number" |
- String() 转换为 String 类型
1 | let a = 213; |
- Number() 转化为 Number 类型
1 | a = "0.123"; |
- parseInt(string: string, radix?: number)
1 | a = "010"; |
- Boolean() 转化为 Boolean 类型
1 | console.log(Booleanl(a)); // 除了 0、NaN、null、空串"" 外,其余的 Boolean() 都返回 true |
- 任何值与字符串相加,都返回字符串。其他的加法、减法、乘除法都转化 number,再进行运算
1 | console.log(NaN + "1"); // "NaN1" |
逻辑运算
根据“短路原则”。
两值相与时,第一个值为 true,则返回第二个值;第一个值为 false,则返回第一个值。
两值相或时,第一个值为 true,则返回第一个值;第一个值为 false,则返回第二个值。
1 | console.log(3 && 5); // 5 |
- 比较运算时,自动转化为 number 类型。任何值与 NaN 进行比较运算,都返回 fasle
1 | console.log(1 > ""); // 等价于1 > 0,返回 true |
特别地,当两字符串相比较时,即比较 Unicode 码
1 | console.log("2.a" > "2.b"); // false,因为 a 为 97,b 为 98 |
进行 == 比较运算时
(1)如果两个值类型相同,再进行三个等号(===)的比较
(2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:
1)如果一个是 null,一个是 undefined,那么相等
2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较
1
2
3console.log(1 == "1"); // true
console.log(1 == "1a"); // false,等价于 1 == NaN
console.log(null == undefined); // true
特别地,NaN 不与任何值相同(包括它自己),用 isNaN() 来判断