zoukankan      html  css  js  c++  java
  • js-JavaScript高级程序设计学习笔记3

    第五章 引用类型

    1、使用new操作符和Date构造函数创建日期对象。

    2、创建特定日期有两个方法——Date.parse()和Date.UTC()。后者小时数为0时显示时间是8点,应该是因为本地是东八区。

    3、使用Date.now()方法可以分析代码的运行时间。代码开头使用一次,结束使用一次,然后两次相减得到运行的毫秒数。

    4、在不支持Date.now()的浏览器中,使用var start=+new Date();可达到同样的目的。

    5、可以直接用比较操作符比较日期的大小。

    6、使用构造函数来定义正则表达式,需要对元字符双重转义

    7、函数是对象,函数名是指针

    8、解析器会先读取函数声明,使其在任何代码之前可用。

    9、函数内部有两个特殊的对象,arguments和this

    10、arguments的用途是保存函数参数,这个对象有个名叫callee的属性,该属性是个指针,指向拥有这个arguments对象的函数。可用于在递归时接触函数体内代码与函数名的耦合状态。

    11、this引用的是函数据以执行的环境对象

    12、ES5的另一个函数对象属性——caller,保存着调用当前函数的函数的引用

    13、每个函数都包含两个属性:length和prototype。length属性表示函数希望接收的命名参数的个数。

    14、每个函数都包含两个非继承而来的方法:apply()和call()。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。

    15、apply()方法接收两个参数:一个是在其中运行函数的作用域,另一个是参数数组(可以是Array实例,也可以是arguments对象)。call()与apply()作用相同,但是传递给函数的参数必须逐个列举出来

    16、传递参数并非apply()和call()的真正用武之地,他们强大的地方在于能够扩充函数赖以运行的作用域P117。用他们扩充作用域的好处是对象不需要与方法有任何耦合关系。

    17、ES5还定义了一个方法:bind()。这个方法创建一个函数的实例,其this值会被绑定到传给bind()函数的值。如var objectSayColor=sayColor.bind(o);在这里,sayColor()调用bind()并传入对象o,创建了objectSayColor()函数,它的this值等于o。

    18、Number类型中将数值格式化为字符串的方法——toFixed()、toExpoential()、toPrecision()。前两个接收数值表示小数的位数,第三个接收数值表示总位数

    19、字符串方法——slice()、substr()、substring()的异同以及对负的参数的处理方法见P124

    20、trim()方法创建一个字符串的副本,删除前置和后缀的所有空格。

    21、字符串的match()方法接收一个正则表达式或者RegExp对象,与调用RegExp的exec()方法相同。

    22、eval()方法能够解析代码字符串,谨慎使用。

    23、找到数组中的最大或最小值,可以使用apply()方法。

    1 var values=[1,2,3,4,5,6,7,8];
    2 var max=Math.max.apply(Math,values);

    24、随机返回一个范围内的整数

    1 function selectFrom(lowerValue,upperValue){
    2     var choices=upperValue-lowerValue+1;
    3     return Math.floor(Math.random()*choices+lowerValue);
    4 }
    5 
    6 var num=selectFrom(2,10);
    7 //介于2到10之间的一个随机数值

    25、三种基本的包装类型——Boolean、Number、String。特征:1、每个包装类型都映射到同名的基本类型。2、在读取模式下访问基本类型值时,就会创建对应的基本包装类型的一个对象,方便了数据的操作。3、操作基本类型值得语句一经执行完毕,就会立即销毁新创建的包装对象。

  • 相关阅读:
    无法重用Linq2Entity Query
    The Joel Test
    MSBuilder directly instead of default VSComplie with keyborad shotcut 原创
    客户端缓存(Client Cache)
    关于代码重构和UT的一些想法,求砖头
    ExtJS2.0实用简明教程 应用ExtJS
    Perl information,doc,module document and FAQ.
    使用 ConTest 进行多线程单元测试 为什么并行测试很困难以及如何使用 ConTest 辅助测试
    史上最简单的Hibernate入门简介
    汽车常识全面介绍 传动系统
  • 原文地址:https://www.cnblogs.com/zczhangcui/p/6099020.html
Copyright © 2011-2022 走看看