今天的工作
1、原是类型(primitive type) 对象类型(object type)
有 5 种原始类型(primitive type)
Undefined、Null、Boolean、Number、String
typeof 运算符有一个参数,即要检查的变量或值
对变量或值调用 typeof 运算符将返回里面的值
undefined - 如果变量是 Undefined 类型的
boolean - 如果变量是 Boolean 类型的
number - 如果变量是 Number 类型的
string - 如果变量是 String 类型的
object - 如果变量是一种引用类型或 Null 类型的
为什么 typeof 运算符对于 null 值会返回 "Object"。
其实是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。
Undefined 类型
Undefined 类型只有一个值, undefined当声明的变量未初始化时,该变量的默认值是 undefined
Null 类型
Null类型 只有一个值的类型是 Null,它只有一个专用值 null,它的字面量值 undefined 实际上是从值 null 派生来的,所以 ECMAScript 把它们定义为相等的。
Boolean 类型
Boolean 类型是 ECMAScript 中最常用的类型之一,它有两个值 true 和 false
即使 false 不等于 0,0 也可以在必要时被转换成 false,这样在 Boolean 语句中使用两者都是安全的。
Number 类型
ECMA-262 中定义的最特殊的类型是 Number 类型。这种类型既可以表示 32 位的整数,还可以表示 64 位的浮点数。
直接输入的任何数字都被看做 Number 类型的字面量。
就比如代码声明了存放整数值的变量,它的值由字面量 86 定义
八进制数和十六进制数
整数也可以被表示为八进制(以 8 为底)或十六进制(以 16 为底)的字面量。八进制字面量的首数字必须是 0,其后的数字可以是任何八进制数字(0-7)
要创建十六进制的字面量,首位数字必须为 0,后面接字母 x,然后是任意的十六进制数字(0 到 9 和 A 到 F)。这些字母可以是大写的,也可以是小写的。
Number 值
几个特殊值也被定义为 Number 类型。前两个是 Number.MAX_VALUE 和 Number.MIN_VALUE,它们定义了 Number 值集合的外边界。所有 ECMAScript 数都必须在这两个值之间。不过计算生成的数值结果可以这两个值里面。
计算生成的数大于 Number.MAX_VALUE 时,它将被赋予值 Number.POSITIVE_INFINITY,就是不再有数字值。同样,生成的数值小于 Number.MIN_VALUE 的计算也会被赋予值 Number.NEGATIVE_INFINITY,也是说着不再有数字值。如果计算返回的是无穷大值,那么生成的结果不能再用于其他计算。
事实上,有专门的值表示无穷大, Infinity。Number.POSITIVE_INFINITY 的值为 Infinity。Number.NEGATIVE_INFINITY 的值为 -Infinity。
由于无穷大数可以是正数也可以是负数,所以可用一个方法判断一个数是否是有穷的。可以对任何数调用 isFinite() 方法,以确保该数不是无穷大。
最后一个特殊值是 NaN,表示非数(Not a Number)。NaN 是个特殊值。这种情况发生在类型(String、Boolean 等)转换失败时。要把单词 blue 转换成数值就会失败,因为没有与之等价的数值。与无穷大一样,NaN 也不能用于算术计算。NaN 的另一个现象,它与自身不相等,这意味着下面的代码将返回 false
String 类型
String 类型它是唯一没有固定大小的原始类型。可以用字符串存储 0 或更多的 Unicode 字符,有 16 位整数表示(Unicode 是一种国际字符集)。
字符串中每个字符都有特定的位置,首字符从位置 0 开始,第二个字符在位置 1,依此类推。这意味着字符串中的最后一个字符的位置一定是字符串的长度减 1:
位置 A S D F G H 相对应的数字 0 1 2 3 4 5
字符串字面量是由双引号(")或单引号(')声明的。而 Java 则是用双引号声明字符串,用单引号声明字符。但是由于 ECMAScript 没有字符类型,所以可使用这两种表示法中的任何一种。
object type
拥有指定的 MIME 类型的 <object> 元素
上面这个代码的是可以将单词通过特效在不改变位置的情况下溶解然后在组合长别的单词只在学习网站有效果
MIME 类型
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。
MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
官方的 MIME 信息是由 Internet Engineering Task Force (IETF)
type 属性规定对象的 MIME 类型。
1、原是类型(primitive type) 对象类型(object type)
有 5 种原始类型(primitive type)
Undefined、Null、Boolean、Number、String
typeof 运算符有一个参数,即要检查的变量或值
var sTemp = "test string";
alert (typeof sTemp); //输出 "string"
alert (typeof 86); //输出 "number"
对变量或值调用 typeof 运算符将返回里面的值
undefined - 如果变量是 Undefined 类型的
boolean - 如果变量是 Boolean 类型的
number - 如果变量是 Number 类型的
string - 如果变量是 String 类型的
object - 如果变量是一种引用类型或 Null 类型的
为什么 typeof 运算符对于 null 值会返回 "Object"。
其实是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。
Undefined 类型
Undefined 类型只有一个值, undefined当声明的变量未初始化时,该变量的默认值是 undefined
var oTemp;
alert(typeof oTemp); //输出 "undefined"
Null 类型
Null类型 只有一个值的类型是 Null,它只有一个专用值 null,它的字面量值 undefined 实际上是从值 null 派生来的,所以 ECMAScript 把它们定义为相等的。
alert(null == undefined); //输出 "true"
Boolean 类型
Boolean 类型是 ECMAScript 中最常用的类型之一,它有两个值 true 和 false
即使 false 不等于 0,0 也可以在必要时被转换成 false,这样在 Boolean 语句中使用两者都是安全的。
var bFound = true;
var bLost = false;
Number 类型
ECMA-262 中定义的最特殊的类型是 Number 类型。这种类型既可以表示 32 位的整数,还可以表示 64 位的浮点数。
直接输入的任何数字都被看做 Number 类型的字面量。
就比如代码声明了存放整数值的变量,它的值由字面量 86 定义
var iNum = 86;
八进制数和十六进制数
整数也可以被表示为八进制(以 8 为底)或十六进制(以 16 为底)的字面量。八进制字面量的首数字必须是 0,其后的数字可以是任何八进制数字(0-7)
var iNum = 070; //070 等于十进制的 56
要创建十六进制的字面量,首位数字必须为 0,后面接字母 x,然后是任意的十六进制数字(0 到 9 和 A 到 F)。这些字母可以是大写的,也可以是小写的。
var iNum = 0x1f; //0x1f 等于十进制的 31
var iNum = 0xAB; //0xAB 等于十进制的 171
Number 值
几个特殊值也被定义为 Number 类型。前两个是 Number.MAX_VALUE 和 Number.MIN_VALUE,它们定义了 Number 值集合的外边界。所有 ECMAScript 数都必须在这两个值之间。不过计算生成的数值结果可以这两个值里面。
计算生成的数大于 Number.MAX_VALUE 时,它将被赋予值 Number.POSITIVE_INFINITY,就是不再有数字值。同样,生成的数值小于 Number.MIN_VALUE 的计算也会被赋予值 Number.NEGATIVE_INFINITY,也是说着不再有数字值。如果计算返回的是无穷大值,那么生成的结果不能再用于其他计算。
事实上,有专门的值表示无穷大, Infinity。Number.POSITIVE_INFINITY 的值为 Infinity。Number.NEGATIVE_INFINITY 的值为 -Infinity。
由于无穷大数可以是正数也可以是负数,所以可用一个方法判断一个数是否是有穷的。可以对任何数调用 isFinite() 方法,以确保该数不是无穷大。
var iResult = iNum * some_really_large_number;
if (isFinite(iResult)) {
alert("finite");
}
else {
alert("infinite");
}
最后一个特殊值是 NaN,表示非数(Not a Number)。NaN 是个特殊值。这种情况发生在类型(String、Boolean 等)转换失败时。要把单词 blue 转换成数值就会失败,因为没有与之等价的数值。与无穷大一样,NaN 也不能用于算术计算。NaN 的另一个现象,它与自身不相等,这意味着下面的代码将返回 false
alert(NaN == NaN); //输出 "false"
String 类型
String 类型它是唯一没有固定大小的原始类型。可以用字符串存储 0 或更多的 Unicode 字符,有 16 位整数表示(Unicode 是一种国际字符集)。
字符串中每个字符都有特定的位置,首字符从位置 0 开始,第二个字符在位置 1,依此类推。这意味着字符串中的最后一个字符的位置一定是字符串的长度减 1:
位置 A S D F G H 相对应的数字 0 1 2 3 4 5
字符串字面量是由双引号(")或单引号(')声明的。而 Java 则是用双引号声明字符串,用单引号声明字符。但是由于 ECMAScript 没有字符类型,所以可使用这两种表示法中的任何一种。
var sColor1 = "red";
var sColor2 = 'red';
object type
拥有指定的 MIME 类型的 <object> 元素
<object width="400" height="400" data="helloworld.swf"
type="application/x-shockwave-flash"></object>
上面这个代码的是可以将单词通过特效在不改变位置的情况下溶解然后在组合长别的单词只在学习网站有效果
MIME 类型
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。
MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
官方的 MIME 信息是由 Internet Engineering Task Force (IETF)
type 属性规定对象的 MIME 类型。