当前位置: 首页 > 互联网, 历程 > 正文

Javascript学习(一)

读书百遍,其意自见。再一次阅读PROFESSIONAL JavaScript® for Web Developers,Third Edition ,将要点记录下吧。虽然是第二次看,不过我相信此次阅读的收获会更大。

组成Javascript的三部分:Javascript语言,文档对象模型(DOM),浏览器对象模型(BOM)。

strict模式:”use strict”放在代码块的top位置才有效,如不是最前位置,则对整个代码块来说是无效的。

函数内声明的变量,在函数执行完之后,就销毁了。如果函数内不带var的使用一个变量,且全局变量中没有此名称的变量,则表示直接声明了一个gloabl变量,当然,这种方式是不推荐的。

在ECMAscript有5种简单类型(或称:原型类型):Undefined,Null,Boolean,Number,String;还有一个称为对象的复杂类型,这种类型事实上是无序键值对列表。

typeof操作符:值有”undefined”,”boolean”,”string”,”number”,”object”,”function”。
typeof null 返回”object”。未补始化变量与未声明变量的typeof的结果都是”undefined”,但其意义是完全不一样的。

alert(null == undefined) //true。因为:The value undefined is a derivative of null.

因为浮点数比整数占用更多的内存空间,ECMAScript会想方设法将值转换成整型数。如果十进数末尾小数点之后没有数字,则值就变成整数。比如:
var floatNum2 = 10.0;   //whole number – interpreted as integer 10

浮点值精确到17位小数,但在计算中远没有整数计算来的精确。
Question: 为什么在Javascript中:alert( 0.1 + 0.2 ) 显示结果为: 0.30000000000000004 ??

数据范围,ECMAScript中可表示的最大最小值:Number.MAX_VALUE,Number.MIN_VALUE。
无法表现的值,用Infinity表示:alert(Number.MAX_VALUE+Number.MAX_VALUE) //Infinity

NaN是(Not a Number)的缩写。它不等于任何值,甚至是NaN本身。alert(Nan == NaN) //false

Number转换:强制转换函数:Number(),parseInt(),parseFloat(),理解Number()与parseInt()的差异。
Number(“”)=0; parseInt(“”)=NaN; Number(“123blue”)=NaN; parseInt(“123blue”)=123; Number(true)=1; parseInt(true)=NaN;

Labeled表达式,主要用在break,及continue的语句中。

with表达式:表示在代码块内,使用一个特定的对象。如:with(location){alert(href);}

理解函数的参数。ECMAScript函数并不关注参数传递的个数,也不关心这个参数的数据类型。原因是在ECMAScript中,参数在内部是通过数组的方式展现的。数组被传递到函数,无论是空数组还是有元素数组,函数本身并不关注。事实上,函数是通过一个叫arguments对象在函数内部访问传入的参数。比如:

[code lang=”javascript”]
function sayHi(){
alert("Hello " + arguments[0] +", "+ arguments[1]);
}
sayHi("Byhard","Nice to meet you.");
[/code]

ECMAScript中没有函数重载,相同名称的函数,以最后一次定义为准,之前定义的函数会被完全覆盖掉。

本文固定链接: http://www.byhard.com/?p=1231 | 海纳百川

该日志由 byhard 于2014年11月19日发表在 互联网, 历程 分类下,
原创文章转载请注明: Javascript学习(一) | 海纳百川
关键字: ,
【上一篇】
【下一篇】

Javascript学习(一):目前有1 条留言

  1. 沙发
    尚吾网:

    再次来访,一如既往的支持。

    2014-11-26 12:53