主要的类型有 number、string、object 以及 Boolean 类型,其他两种类型为 null 和 undefined。
String 字符串类型:字符串是用单引号或双引号来说明的。(使用单引号来输入包含引号的字符串。)如:“The cow jumped over the moon.”
数值数据类型:JavaScript 支持整数和浮点数。整数可以为正数、0 或者负数;浮点数可以包含小数点、也可以包含一个 “e”(大小写均可,在科学记数法中表示“10的幂”)、或者同时包含这两项。
Boolean 类型:可能的 Boolean 值有 true 和 false。这是两个特殊值,不能用作 1 和 0。
Undefined 数据类型:一个为 undefined 的值就是指在变量被创建后,但未给该变量赋值以前所具有的值。
Null 数据类型:null 值就是没有任何值,什么也不表示。
object类型:除了上面提到的各种常用类型外,对象也是JavaScript中的重要组成部分,这部分将在后面章节详细介绍。
在 JavaScript 中变量用来存放脚本中的值,这样在需要用这个值的地方就可以用变量来代表,一个变量可以是一个数字,文本或其它一些东西。
JavaScript是一种对数据类型变量要求不太严格的语言,所以不必声明每一个变量的类型,变量声明尽管不是必须的,但在使用变量之前先进行声明是一 种好的习惯。可以使用 var 语句来进行变量声明。如:var men = true; // men 中存储的值为 Boolean 类型。
变量命名:JavaScript 是一种区分大小写的语言,因此将一个变量命名为 computer 和将其命名为 Computer是不一样的。
另外,变量名称的长度是任意的,但必须遵循以下规则:
1.第一个字符必须是一个字母(大小写均可)、或一个下划线(_)或一个美元符 ($)。
2.后续的字符可以是字母、数字、下划线或美元符。
3.变量名称不能是保留字。
引用内容
js有9种类型 可见类型6种 typeof的结果7种
六种可见 Undefined Null Boolean String Number Object
三种不可见 Reference List Completion
typeof的结果 undefined boolean string number object 其中Null的typeof结果也是object
另有2种特殊的 ie中xml类型也可typeof得到 date和unknown(详情搜R版的旧帖)
六种可见 Undefined Null Boolean String Number Object
三种不可见 Reference List Completion
typeof的结果 undefined boolean string number object 其中Null的typeof结果也是object
另有2种特殊的 ie中xml类型也可typeof得到 date和unknown(详情搜R版的旧帖)
以上内容引用: http://bokee.shinylife.net/blog/article.asp?id=679
项目中遇到的问题:
var objStream = new ActiveXObject("adodb.stream");
objStream.Type = 1;
objStream.Mode = 3;
objStream.Open();
objStream.LoadFromFile( "E:\\DfApp\\WebApp\\WebApp\\ObjJs\\未命名.JPG" );
var byt= objStream.Read(1) ;
alert( byt instanceof Object) ;
objStream.Type = 1;
objStream.Mode = 3;
objStream.Open();
objStream.LoadFromFile( "E:\\DfApp\\WebApp\\WebApp\\ObjJs\\未命名.JPG" );
var byt= objStream.Read(1) ;
alert( byt instanceof Object) ;
这样的话,居然报 false , 返回的 byt 用 typeof 检测是一个 unknown 数据类型!!在 VS.NET 调试器里调试是一个 Array of Byte!!
alert ( byt ) ; 的话会报一个乱字符. 所以我怀疑. 这是一个地址.这里的 unknown 是一个COM+里的类型,但是在 Javascript 不被支持.
如果用另一种方式读取:
//十进制数: 241 52 224
//十六进制数 : F1 34 e0
//二进制数: 11110001 00110100 11100000
var objStream = new ActiveXObject("adodb.stream");
objStream.Type = 2;
objStream.Mode = 3;
objStream.Open();
// objStream.Charset = "ascii";
objStream.LoadFromFile( "E:\\DfApp\\WebApp\\WebApp\\ObjJs\\未命名.JPG" );
var Xml = new String();
var len = objStream.size ;
Xml += objStream.ReadText() + "" ;
objStream.Close() ;
//十六进制数 : F1 34 e0
//二进制数: 11110001 00110100 11100000
var objStream = new ActiveXObject("adodb.stream");
objStream.Type = 2;
objStream.Mode = 3;
objStream.Open();
// objStream.Charset = "ascii";
objStream.LoadFromFile( "E:\\DfApp\\WebApp\\WebApp\\ObjJs\\未命名.JPG" );
var Xml = new String();
var len = objStream.size ;
Xml += objStream.ReadText() + "" ;
objStream.Close() ;
如果不指定 Charset ,默认是 "utf-8" .这样的话,读出来的数据长度是 5 . 很奇怪. 调试 : Xml.substr(0,1).charCodeAt().toString(16) = "34f1" , 读出来倒是正确的.只是高位和低位置换了. Xml.length = 1 , 是因为不够四个字节的整数倍,把最后一个字节丢失了!(从文件再加一个字节,可验证这一点) .
看来. 用 Utf-8 读是不行的. 还有一种 ASCII 方式!
但是ASCII 是七位编码.只能读出字节的后七位(最高位是符号位). 用 Xml.length 倒是能读到3位. 但Xml.substr(0,1).charCodeAt().toString(16) = "71". 丢失了符号位.
看来,读二进制,和读 文本,还是有着本质上的区别!