zoukankan      html  css  js  c++  java
  • 强化对 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里面var,它控制了变量的作用范围。函数内的变量只要带有var,那么函数内用的这个变量就和函数外的无关。

     

      

    var a;
    c=new function(){var a=1;alert(typeof(a));};
    alert(typeof(a));
    结果为:number,undefined;

    var a=1;
    c=new function(){alert(typeof(a));var a=1;};
    alert(typeof(a));
    结果为:undefined,number;

    var a;
    c=new function(){alert(typeof(a));a=1;};
    alert(typeof(a));
    结果为:undefined,number;

    var a;

    c=new function(){var a=1;alert(typeof(a));};可以在c里面用this.a来访问全局变量a

    ============

    说出它们的值

    1、typeof(NaN) number、typeof(Infinity) number、typeof(null) object、typeof(undefined) undefined
    2、NaN == NaN false
    3、NaN != NaN true
    4、NaN >= NaN false
    5、null == undefined true
    6、null >= undefined false
    7、null <= undefined false
    8、parseInt("123abc") 123
    9、"123abc" - 0 NaN
    10、Infinity > 10 true
    11、Infinity > "abc" false
    12、Infinity == NaN false
    13、true == 1 ture
    14、new String("abc") == "abc" true
    15、new String("abc") === "abc" false 完全相同

    关系运算符(<、>、<=、>=)

    • 试图将 expression1 和 expression2 都转换为数字。
    • 如果两表达式均为字符串,则按字典序进行字符串比较。
    • 如果其中一个表达式为 NaN,返回 false
    • 负零等于正零。
    • 负无穷小于包括其本身在内的任何数。
    • 正无穷大于包括其本身在内的任何数。

    相等运算符 (==、!=)

    • 如果两表达式的类型不同,则试图将它们转换为字符串、数字或 Boolean 量。
    • NaN 与包括其本身在内的任何值都不相等。
    • 负零等于正零。
    • null 与 null 和 undefined 相等。
    • 相同的字符串、数值上相等的数字、相同的对象、相同的 Boolean 值或者(当类型不同时)能被强制转化为上述情况之一,均被认为是相等的。
    • 其他比较均被认为是不相等的。

    恒等运算符 (===、!==)

    除了不进行类型转换,并且类型必须相同以外,这些运算符与相等运算符的作用是一样的。


    说出它们的输出结果

    1、
    var a = "123abc";
    alert(typeof(a++)); string,++运算符在typeof时候没有执行
    alert(a); NaN

    2、a是string类型
    var a = "123abc";
    a.valueOf = function(){return parseInt(a);}
    alert(++a); NaN
    alert(a-0); NaN

    3、a是object类型
    var a = new Object();
    a.toString = function(){return "123abc";}
    a.valueOf = function(){return parseInt(a);}
    alert(++a);124
    alert(a-0);124

    4、
    String.prototype.valueOf = function()
    {
    return parseFloat(this);
    }
    alert("123abc" > 122); false
    alert(new String("123abc") > 122); true

    5、
    var s = new String("abc");
    alert(typeof(s) == typeof("abc"));false
    alert(s === "abc");false
    alert(s.toString() == s);true

    6、
    var a = new Object();
    a.toString = function(){return "a"};
    var b = new Object();
    b.toString = function(){return "b"};
    alert(a>b);
    a.valueOf = function(){return 1};
    b.valueOf = function(){return 0};
    alert(a>b);

    7、
    function step(a)
    {
    return function(x)
    {
    return x + a++;
    }
    }
    var a = step(10);
    var b = step(20);
    alert(a(10));
    alert(b(10));



    我偶尔写js 角本的时候,对js 数据类型比较模糊,例如比较大小。

       


       if(2 > 10)
     {
     alert("不正确!");
     }

       此比较不会是想要的结果:它相当于2 >1,把10的第一位取出来比较。

       解决方 法:

     



     if(eval(2) > eval(10))
     {
     alert("不正确!");
     }

       eval()函数用于在不引用任何特定对象的情况下计算代码字符串。




    为了加强对数据类型的认识就做了这个札记.

    你对数据类型的认识深刻吗?


    转自:http://www.iteye.com/topic/427150

  • 相关阅读:
    四则运算 2
    《你的灯亮着吗》读后感 (前两篇)
    四则运算设计思路
    读书目标
    课堂总结
    人月神话感想
    软件工程概论11
    软件工程概论10
    bnu——GCD SUM (莫比乌斯反演)
    POJ1108_Split Windows 解题报告
  • 原文地址:https://www.cnblogs.com/fengju/p/6173745.html
Copyright © 2011-2022 走看看