js
当要声明一个变量并进行初始化,但又不想指定任何特殊值,可以赋值为 JScript 值 null。下面给出示例。
var bestAge = null;
var muchTooOld = 3 * bestAge; // muchTooOld 的值为 0。
如果声明了一个变量但没有对其赋值,该变量存在,其值为Jscript 值 undefined。下面给出示例。
var currentCount;
var finalCount = 1 * currentCount; // finalCount 的值为 NaN,因为 currentCount 为 undefined。
注意在 JScript 中 null 和 undefined 的主要区别是 null 的操作象数字 0,而 undefined 的操作象特殊值NaN (不是一个数字)。对 null 值和 undefined 值作比较总是相等的。
可以不用 var 关键字声明变量,并赋值。这就是隐式声明。
noStringAtAll = ""; // 隐式声明变量 noStringAtAll。
不能使用未经过声明的变量。
var volume = length * width; // 错误 — length 和 width 并不存在。
*****************************************************************************************************************
表达式中操作项的数据类型相同时 JScript 解释器才能对其求值。如果表达式不经过强制转换就试图对两个不同的数据类型(如一个为数字,另一个为字符串)执行运算,将产生错误结果。但在 Jscript 中情况就不同了。
JScript 是一种自由类型的语言。它的变量没有预定类型(相对于强类型语言,如 C++)。相反,JScript 变量的类型相应于他们包含的值的类型。这种操作的好处是能将值作为另一类型处理。
*****************************************************************************************************************
数值与字符串相加 将数值强制转换为字符串。
布尔值与字符串相加 将布尔值强制转换为字符串。
数值与布尔值相加 将布尔值强制转换为数值。
考虑下面的示例。
var x = 2000; // 一个数字。
var y = "Hello"; // 一个字符串。
x = x + y; // 将数字强制转换为字符串。
document.write(x); // 输出 2000Hello。
要想显式地将字符串转换为整数,使用 parseInt 方法。要想显式地将字符串转换为数字,使用 parseFloat 方法。
请注意,比较大小时字符串自动转换为相等的数字,但加法(连接)运算时保留为字符串。