• 《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 的内存问题”。

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

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

  • 相关阅读:
    MyBatis中#{}和${}的区别
    springBoot 配置详解
    模板方法模式
    记录一次linux挂载数据盘
    缓存击穿,缓存穿透,缓存雪崩
    Echart折线值相加问题
    mybatis plus主键生成策略
    BigDecimal精度损失
    cent0s6安装nginx小程序https
    Centos6 java运行环境部署
  • 原文地址:https://www.cnblogs.com/wxhhts/p/9405797.html
Copyright © 2020-2023  润新知