《JavaScript高级程序设计》学习总结三(3)

引言: 不引了,直接进入正题吧。

String  类型: 

ECMAScript 中的字符串是不可变的,也就是字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先先销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。

转换字符串:

要把一个值转成字符串一般有两种方式:1、toString()方法,数值、布尔值、对象和字符串值(每个字符串都有一个toString() 方法,该方法返回字符串的一个副本)都有 toString ()方法。但是null 和undefined没有。toString()的参数中,可以利用这个来获得数值的进制字符串值,比如:value.toString( 2) //返回一个数值的二进制。

转型函数String():在不知道转换的数值是null 或者undefined 的时候,推荐使用String()方法。这个函数能够将任何类型的值转成字符串,其转换规则如:

  (1)、如果有toString()方法,那么直接调用这个方法来返回值。

  (2)、如果值是null 则返回null,如果值是undefined 则返回undefined。(null 与 undefined 没有toString()方法,所以会调用String()方法,所以直接返回这两个的字面量)

 

object类型:

Object 的每个实例都有下列属性和方法:""

1、Constructor: 保存用于创建当前对象的函数。如 :var  o=new object()这里对象 o 的constructor 就保存object();

2、hasOwnProperty(propertyName):用于检查给定的属性在当前的对象实例中是否存在(当前对象实例,而不是实例原型),参数必须是指定的字符串形式,用法; o.hasOwnProperty("name")。

3、isPrototypeOf(object):用来判断传入的对象是否是另一个对象的原型。

4、propertyIsEnumerable(propertyName):用于检查给定的对象是否能用 for-in 语句类来枚举。参数必须指定字符串形式。

5、toLocaleString()返回对象的字符串表示,该字符串与执行环境的地区对应(LocaleString()会根据你机器的本地环境来返回字符串)。

6、toString():返回对象的字符串表现形式。

7、valueOf:返回对象字符串、数值、或布尔值表示。通常与toString 返回值相同。

运算符 (常用的点击这里查看)

经常被问到:&与&&有什么不同。

& 不管前面的条件是否正确,后面都执行
&& 前面条件正确时,才执行后面,不正确时,就不执行。

比较有趣的是在进行运算的时候,如果其中有一个数不是数字,那么在后台就会调用Number()方法,将其转成数字,所以就有了 8-true=7,这样的式子成立。

全等操作符“===”:例如 null ===undefined 返回false 。因为这里不仅比较的是二者的值,还比较二者的类型,虽然值一样,但是类型不同,导致这里返回false 。

语句:

常用语句: if 、 while、 do-while、for、for-in、label、with、switch、break 和continue 。

这里没什么想说的,都是比较常用的,比较注意的是又一次一个小伙伴碰到的一个 for 循环问题  :

function a(){
for(var i=0;i<5;i++){
alert(i); //4
}
alert(i);  //5
}
a(); 有些小伙伴搞不明白,为什么外面的 i 会是5 。循环里的 i 弹出是4 ,这里其实了解一下for 循环运行机制就能了解到。  

                                             1、i=0 i<5 成立然后弹出 0; 

                                             2、i++, 然后变成i=1,继续判断 i<5成立,弹出 1 (for 循环中前面的 i=0 初始化只执行一次)

                                             3、i++ ,变成 i=2 ,判断 i<5 成立,弹出 2.

                                             4、前面重复,一直到 4 判断 4<5 成立,弹出 4,然后 又一次i++ ,此时 i=5,然后判断 5<5 不成立,于是循环结束,但是此时 i 的值等于 5。

for -in: 是一种精准的迭代语句,可以用来枚举对象属性。例如:

 for (var propNmae in window){

document.write(propName );

}

这里我们用 for-in 循环显示window 对象的所有属性。但是如果对象的变量值为null或者 undefined 就会报错,不过这种情况在ECMAScript 5已经改成不报错,但是会停止 for-in 语句的循环。所以我们在用 for-in 时最好就是先判断 对象的值是否是null 或者undefined。

with :这个语句的作用就是将代码的作用域设置到一个特定的对象中,其用法示例如下:

  var qs =location.search.substring( 1 );

  var hostNmae=location.hostname;

  var url=location.href;

这几行代码都用到了 location 对象,所以我们可以用 with语句:

    with(location){   

      var qs =search.substring( 1 );

      var hostNmae=hostname;

      var url=href;

------------------------------------------------------------------------------------------------------

本章完。下一章预告 “变量、作用域和javascript 的内存问题”。

其实这一章还有最后一个知识点 “函数”,但是函数这个知识其实还是比较多的而且也是很重要的,在这里一时半会很难说全说清,甚至说多了还会搞乱思路,所以我打算把这个

知识点放到后面再进行详细的总结。

原文地址:https://www.cnblogs.com/wxhhts/p/9405797.html