JavaScript高级程序设计(第3版) (30) 更多

  • 第85页
    1. alert(person["name"]);(这里的属性名必须加双引号) 2. alert(person.name); 2中方式对于取数据没什么区别,区别在于第一种情况可以使用如下的方式取属性,例: var propertyName = "name"...
  • 第84页
    var person = { name : "hans", age : 24 } 也可以将属性名用字符串定义 即 var person = { "name" : "hans", "age" : 24 }
  • 第80页
    垃圾回收机制有两种: 一种是标记删除法,在垃圾收集器运行时,会把内存中所有的变量都加一个标记,然后删除当前环境中的变量,以及被环境中变量引用的变量的标记,这样之后再加进来的变量,就都是可删除的变量了,...
  • 第85页
    function displayInfo(args){ var output=""; if(typeof args.name == "string"){ output += args.name; } if(typeof args.age == "number"){ output += arg...
  • 第79页
    标记清除法 在垃圾收集器开始运行的时候,将内存中的所有变量加上标记,然后去掉环境中的标量,包括引用变量的标记,这时候,之后环境中,再被添加标记的就是准备删除的变量了,然后垃圾处理器会在一定的时间段来进...
  • 第78页
    ie8之前的版本中,catch块的外部也可以访问到错误对象,但是这是一个bug,ie9已经修复。
  • 第73页
    函数的执行环境是栈的思想,即每一次进入一个函数,该函数的环境会被压入环境栈中,在该函数执行完之后,栈会将这个环境弹出,将控制权返回给之前的执行环境
  • 第73页
    在Web浏览器中,全局执行环境被认为是window对象,所有全局变量和函数都是作为window对象的属性和方法创建的
  • 第72页
    typeof在判断基本类型数据的时候很有效,但是在判断函数的时候就不是那么有效了,因为会在IE和FF中得到Object,在Chrome和Safari中为function。 但在实际应用中,我们更多的是想知道当前对象的原型是什么,所以要使...
  • 第68页
    我们不可以再向基本类型中添加属性,但是可以向引用类型中添加属性。 基本类型是简单的数据段,引用类型是多个值构成的对象。 明确说,基本类型就是undefined,null,number,string,boolean。 而引用类型就是对..
  • 第64页
    没有return的函数,默认返回undefined值
  • 第65页
    定义函数中的变量即getData(a,b,c),这里面的三个变量是可以通过arguments[0],arguments[1],arguments[2],来获取到的 js中的函数对参数的要求很宽松,即你定义的时候定义了3个变量,但是你调用的时候,向其中传入了1...
  • 第59页
    label见59页,label语句用于break和continue的时候,来返回到指定的代码段,语句类似于 break myword; 这种表示就是跳出循环之后,跳到myword代码段,label标签的好处是简化多重嵌套,但是过多的label语句也会变得...
  • 第62页
    var num =25; switch(true){ case num<0: alert("1"); break; case num>=0 && num<=10: alert("2"); break; case num>10 && num<=20: ...
  • 第53页
    这些复合赋值操作符只是为了简化赋值操作,并不能带来任何性能的提升
  • 第52页
    == 是两操作数可以经过类型转换,然后再比对大小的 ===是两操作数不经类型转换,然后再比对大小。 例: “55” == 55 //true "55"字符串转换为数字再比较, "55" === 55 // false 直接进...
  • 字符串与数字比较
    字符串与字符串比较大小的时候,其实就是比较字符编码 例: “23”<"3" //true 因为3的字符编码在2之后,所以“23”<"3"为true 但是如果是“23”<3这样比较的话,那么答案就是我们..
  • 第51页
    即比较 ab 应该在 bc 之前 在js中,字符串的比较,并不是直接按照字母顺序来比较的,而是去计算字母的字符编码来比较,而大写字母的字符编码是小于小写字母的,所以会出现奇怪的现象 即AB<ab为true, 那么我们...
  • 第45页
    逻辑与操作是短路操作,即只要遇到false就会停止,而不对之后的操作数进行判断, 例: var a ; var b = true; alert(b&&a); //这时会报错,因为通过了b,但是a是undefined,所以报错 但这时如果b=false,...
  • 第34页
    toString()和String(xxx)构造器两种方法 toString() 方法,null与undefined是不可以调用的 var a = null (a).toString() //报错 但是String()构造器是可以识别的 var b ; String(b); //undefined
  • 第32页
    不指定基数,即数字按照多少进制来转换,意味着让parseInt()来决定如何解析输入的数字,所以为了避免解析错误,无论什么情况都应该明确基数 例: parseInt("10", 2); //按照2进制转化 parseInt("10&...
  • 第29页
    NaN -- not a number (不是数字) N/A -- not applicable (不适用) isNaN()函数判断值是否可以转换为数字 例如: alert(isNaN(NaN)); //true alert(isNaN(10)); //false alert(isNaN("10")); //f...
  • 第28页
    var a = 0.1; var b = 0.2; if(a+b == 0.3){ alert("aaaa") } 这个测试时不会通过的,而如果a,b换成0.05与0.25 或者0.15与0.15都不会产生问题 所以永远不要测试某个特定的浮点数值
  • 第26页
    undefined值 派生自 null值, so undefined==null is true, 只要保存对象的变量没有真正保存对象,就应该明确让变量保存null值, 这样就可以让null来作为空对象指针,而且还可以区别于undefined所应表示的未初始化
  • 第24页
    undefined是为了正式区分空对象指针和未经初始化的变量。 undefined即是未初始化的变量值
  • 第24页
    typeof是一个操作符,而不是一个函数,所以typeof ’123‘ 与 type ('123')是一样的,这里的()是不必需的
  • 第19页
    ECMAScript中的一切(变量、函数名和操作符)都区分大小写
  • script放置与加载
    浏览器会先解析完不使用defer属性的<script>元素中的代码,然后在执行后面的内容,这样就造成了加载JS的缓慢而导致整个页面都缓慢的结果,所以应该把<script>元素放在主要内容之后, </body>元素..
  • 第12页
    浏览器在遇到<body>标签之后才会开始显示内容
  • 第10页
    <script>标签有defer属性,可以使脚本延迟到文档完全被解析和显示之后再执行,只对外部脚本有效 即defer=“defer” 但是这个属性很不稳定,只适用于外部脚本,并且加载次序不稳定,而且其只适用于早期浏览器..

计算机组成原理 (2)

  • 第18页
    一台机器是否有乘法指令的功能,是一个机构的问题,而实现乘法指令采用什么方式,是一个组成的问题
  • 第16页
    编译程序和解释程序都是翻译程序。 翻译程序即是将高级语言程序翻译成机器语言程序的软件。 编译程序是将源代码一次性翻译成机器语言程序,然后执行。 解释程序是将源代码的一条语句翻译,然后执行这条语句,然后..