• JavaScript 的数据类型


    JavaScript 有六种数据类型。
    主要的类型有 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版的旧帖)


    以上内容引用: 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) ;

    这样的话,居然报 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() ;

        如果不指定 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". 丢失了符号位.

    看来,读二进制,和读 文本,还是有着本质上的区别!


    alarm   作者:NewSea     出处:http://newsea.cnblogs.com/    QQ,MSN:iamnewsea@hotmail.com

      如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。
  • 相关阅读:
    绝对均匀图生成算法
    告别S! S! H! 秒杀终端工具——FastLogin快捷登录
    使用Atom打造无懈可击的Markdown编辑器
    程序异常分析指南
    javascript opacity兼容性随笔
    javascript event兼容性随笔
    javascript Xml兼容性随笔
    addEventListener、attachEvent、cancelBubble兼容性随笔
    算法--逆波兰表达式(数学逆波兰表达式和交并集逆波兰表达式)
    算法--区间数据计算
  • 原文地址:https://www.cnblogs.com/newsea/p/1076877.html
Copyright © 2020-2023  润新知