JavaScript学习小结(一)(2)

  JavaScript中的字符串String一个特殊的基本数据类型,在很多语言中,String是以对象的形式表示的,但在JavaScript里,String是当作一种基本数据类型,是通值传递的方式来操作。但它是一个比较特殊的基本类型。

看下面例子:

<script type="text/javascript"> var strA = "这是字符串"; var strB = strA; strA = "这是另外一个字符串"; alert("strB="+strB); </script>

运行结果:

  

JavaScript学习小结(一)

  从运行结果可以看到,仿佛strA通过值传递的方式复制了一份给了strB。当strA改变的时候,strB并没有改变,似乎我们已经可以下结论,String就是个基本数据类型。

可是,因为String是可以任意长度的,通过值传递,一个一个的复制字节显示效率依然很低,看起来String也可以当作引用类型。

看下面例子:

var a = "myobject"; a.name = "myname";//为字符串a动态添加name属性 alert("a.name="+a.name); //访问a的name属性,

结果显示:a.name=undefined

运行结果:

  

JavaScript学习小结(一)

  运行结果显示,String无法当作一个对象来处理。这也证明了一点:基本类型虽然也可以添加属性,也不会报错,经测试添加完之后却是无法访问的,实际上,javascript里的String是不可以改变的,javascript也没有提供任何一个改变字符串的方法和语法。

看下面的例子:

var b = "myobject"; b = b.substring(,); alert("b="+b); // b=bj

运行结果:

  

JavaScript学习小结(一)

  这样做,没并有改变String字符串"myobject",只b引用了另一个字符串"bj","myobject"被回收了。

  所以可以这样讲,String实际上并不符合上面两种数据类型分类。它是具有两方面属性介于两都之间的一种特殊类型。

3.1.3、Null 类型

  Null类型只有一个专用值 null,值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

<script type="text/javascript"> alert("null == undefined的结果是:"+(null == undefined)); //输出 "true" </script>

运行结果:

  

JavaScript学习小结(一)

  尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(typeof 运算符对于 null 值会返回 "Object"。)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。

3.1.4、Undefined 类型

  Undefined 类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。

var oTemp;

  前面一行代码声明变量 oTemp,没有初始值。该变量将被赋予值 undefined,即 undefined 类型的字面量。可以用下面的代码段测试该变量的值是否等于 undefined:

<script type="text/javascript"> var oTemp; alert("oTemp == undefined的结果是:"+(oTemp == undefined));//输出 "true" </script>

运行结果:

  

JavaScript学习小结(一)

  运行结果显示 "true",说明这两个值确实相等。

  可以用 typeof 运算符显示该变量所代表的的数据类型是undefined类型

<script type="text/javascript"> var oTemp; alert("typeof oTemp的结果是:"+typeof oTemp); //输出 "undefined" </script>

JavaScript学习小结(一)

  值 undefined 并不同于未定义的值。但是,typeof 运算符并不真正区分这两种值。考虑下面的代码:

<script type="text/javascript"> var oTemp; alert("oTemp变量有声明,typeof oTemp的结果是:"+typeof oTemp); //输出 "undefined" alert("oTemp变量没有声明,typeof oTemp的结果是:"+typeof oTemp); //输出 "undefined" </script>

运行结果:

JavaScript学习小结(一)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wggddg.html