Javascript 基础点

1. 基本类型

Javascript 基本数据类型有以下几种:

  1. Number
  2. String:
  3. Boolean:
  4. Undefined: 当你访问一个不存在的变量时,你会得到 undefined。当你定义了一个变量,但没有给它赋值时也会得到 undefined。JavaScript 自动初始化变量为该值,undefined 类型只有一个值 undefined
  5. 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 = InfinityInfinity;   // NaN
var n = -Infinity + Infinity;  // NaN

var n1 = Infinity20;  // Infinity
var n2 = -Infinity * 3;  // -Infinity
var n3 = Infinity / 2;   // Infinity
var n4 = Infinity99999999999999999;  // 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"

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。