0%

JavaScript-高级程序设计(2)

1. 数据类型

有五种简单数据类型:Undefined、Null、Boolean、Number、String,一种复杂数据——Object。

typeof 操作符,其返回值是一个字符串有:

  • undefined:该值未定义;
  • boolean:该值为布尔值;
  • string:该值是字符串;
  • number:该值是数值;
  • object:该值为对象或者 null;
  • function:该值为函数。

使用方法:

1
2
3
var num = 1;
alert(typeof num); // number
alert(typeof 1); // number

变量没定义之前的值就是 Undefined:

1
2
3
4
5
var test_0;
alert(test_0 == undefined); // true

var test_1 = undefined;
alert(test_1 == undefined); // true

Null 类型也只有一个值,null,表示一个空指针对象。

1
2
var test = null;
alert(typeof test); // null

Number 有一个 NaN(Not a Number)值,用于表示一个返回数值的操作数值未返回数值的情况。比如 在其它语言里 数值除以 0 会报错,而在 js 会返回上面个个值。NaN 与其它值的相加相除等操作返回的值也是 NaN。

Number 数值转换有三个函数:Number()、parseInt() 以及 parseFloat()。
Number() 可用于任何任何数据类型,其它两个是用于字符串的。

1
2
var str = "11";
var str_num = Number(str);

转换为字符串的方法有两种方式,第一个就是第个值都有的 toString() 方法。

1
2
var num = 11;
var num_str = num.toString();

toString 方法可传入基数,输入不同的值会有不同的返回不同的进制数。

1
2
var num = 11;
var num_str = num.toString(2); // 1011

亦可直接使用 String() ,使用方法与 Number() 类似。

2. 操作符

+-*/<>=&&|| 与其它语言是类似的。

有一点需要注意全等和不全等符,全等符由 3 个等号(===)表示,在两个操作数未经转换就相等的情况下返回 true,如下面

1
2
var result_0 = "55" == 55; // true 转换后相等
var result_1 = "55" === 55; // false 未转换后不等

3. 语句

if/else/while/for 等语句与 C 语言类似。

for-in 语句是一个精准的迭代语句,可以枚举对象的属性,与 python 的 for 语句类似。

1
for (property in expression) statement;

例子:

1
2
3
for (var proName in window) {
document.write(propName);
}

label 语句可以在代码中添加标签,以便将来使用,用法:

1
label: statement;

例子:

1
2
3
start: for (var i = 0; i < 10; i++) {
alert(i);
}

with 语句的作用是将代码的作用域设置到一个特定的对象中,用法:

1
with (expression) statement;

with 语句的目的是为了简化多次编写同一个对象的工作,如例子示:

1
2
3
var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;

用 with 语句可改写为:

1
2
3
4
5
with (location) {
var qs = search.substring(1);
var hostName = hostname;
var url = href;
}

4. 函数

js 不像 java 那样可以实现重载,如相同的函数名接受不同参数的类型和数量,可定义不同的函数。
如果 js 定义两个相同的函数,那么名字只属于后定义的函数。

------------ 感谢你的阅读 ------------