1. 基本类型
Javascript 基本数据类型有以下几种:
- Number
- String:
- Boolean:
- Undefined: 当你访问一个不存在的变量时,你会得到
undefined
。当你定义了一个变量,但没有给它赋值时也会得到undefined
。JavaScript 自动初始化变量为该值,undefined
类型只有一个值undefined
。 - Null: 意味着变量没有值,或者为空。
除上面类型外,其他的类型都是 object
typeof
返回值
- “number”
- “string”
- “boolean”
- “undefined”
- “object”
- “function”
数字前缀
// Octal, hexadecimal numbers
var no = 0377; // octal
var nh = 0x9F; // hex
// Exponent literals
var ne = 2e3; // 2000
var nn = 2e-3; // 0.002
Infinity
Infinity 属于 number 类型,JavaScript 能处理的最大值为 1.7976931348623157e+308,最小值为 5e-324。
var a = 6 / 0; // Infinity
var i = -Infinity; // -Infinity
var m = Infinity – Infinity; // NaN
var n = -Infinity + Infinity; // NaN
var n1 = Infinity – 20; // Infinity
var n2 = -Infinity * 3; // -Infinity
var n3 = Infinity / 2; // Infinity
var n4 = Infinity – 99999999999999999; // Infinity
NaN
NaN
也是一个特殊的 number 值:
var n1 = typeof NaN; // "number"
var n2 = NaN; // NaN
var n3 = 10 * "f"; // NaN
var n4 = 1 + 2 + NaN; // NaN
2. String 类型转换
var s = '1';
s = 3 * s;
typeof s;
// "number"
s;
// 3
var s = '1';
s++;
typeof s;
// "number"
s;
// 2
3. Logical 判断
任何值都能够用两个取反符来获得它的 Boolean 值。除了以下几个返回 false 之外,绝大多数值都返回 true:
- 空字符串 “”
- null
undefined
- 数字 0
- 数字
NaN
- 布尔 false
注意字符串 “0”, ” “, 以及 “false”转换为布尔值时为 true
4. 比较符
1 == 1;
// true
1 == 2;
// false
1 == '1';
// true
1 === '1';
// false
1 === 1;
// true
1 != 1;
// false
1 != '1';
// false
1 != '2';
// true
1 !== 1;
// false
1 !== '1';
// true
NaN == NaN;
// false // NaN 不等于任何值,包括他自己
Undefined 与 null
foo;
// ReferenceError: foo is not defined
typeof foo;
// "undefined"
var somevar;
somevar;
typeof somevar;
// "undefined"
// JavaScript 自动初始化变量值为 undefined
var somevar;
somevar === undefined;
// true
// JavaScript 不会自动给变量赋 null 的初期值
var somevar = null;
// null
somevar;
// null
typeof somevar;
// "object"
// undefined & null
var i = 1 + undefined;
i;
// NaN
var i = 1 + null;
i;
// 1
// 转换为数字:
1 * undefined;
// NaN
1 * null;
// 0
// 转换为布尔值:
!!undefined;
// false
!!null;
// false
// 转换为字符串:
"value: " + null;
// "value: null"
"value: " + undefined;
// "value: undefined"
5. 数组 Arrays
var a = [1, 2, 3];
// 你可以用以下方式向数组里添加项目
a[3] = 'four';
// "four"
// 如果你用这种方式添加项目,在此索引之前未指定的项目将被初始为 undefined
a[6] = 'new';
// "new"
a;
// [1, 2, 3, "four", undefined, undefined, "new"]
// 使用 delete 来移除项目
var a = [1, 2, 3];
delete a[1];
// true
a;
// [1, undefined, 3]
typeof a[1];
// "undefined"
// 数组可以包含多种类型的数据,甚至可以包含另一个数组
var a = [[1, 2, 3], [4, 5, 6]];
a;
// [Array[3], Array[3]]
6. 代码段落(Code blocks)
检查变量是否存在
var result = "";
if (typeof somevar !== "undefined") {
result = "yes";
}
result;
// ""
var somevar;
if (typeof somevar !== "undefined") {
result = "yes";
}
result;
// ""
somevar = undefined;
if (typeof somevar !== "undefined") {
result = "yes";
}
result;
// ""
somevar = 123;
if (typeof somevar !== "undefined") {
result = 'yes';
}
result;
// "yes"