javascript 基础概念补充点

DOM的级别
DOM1级
   主要包含两个模块:DOM核心和DOM HTML。其中DOM核心规定的是如何映射基于XML的文档结构,简化对文档中任意部分的访问和操作。DOM HTML是在DOM核心的基础上加以扩展,添加了针对HTML的对象和方法。
DOM2级
   在原先的DOM基础上进行扩展,扩充了鼠标和用户界面事件、范围、遍历等细分模块,增加了CSS支持。
DOM3级
   引入了统一的方式加载和保存文档的方法,新增了验证文档的方法,对DOM核心扩展,支持XML1.0规范。
其他DOM标准
   SVG(可伸缩矢量图)
   MathML(数学标记语言)
   SMIL(同步多媒体集成语言)

浏览器对象模型BOM
   从根本上讲,BOM只处理浏览器窗口和框架。但是人们习惯上也把针对浏览器的javascript扩展算作BOM的一部分,这些扩展如下:
   弹出新浏览器窗口的功能
   移动、缩放和关闭浏览器窗口的功能
   提供浏览器详细信息的navigator对象
   提供所有页面载入信息的location对象
   提供用户显示器分辨率详细信息的screen对象
   对cookie的支持
   像XMLHttpRequest和IE的ActiveXObject这样的自定义对象

      javascript是一种专为与网页交互而设计的脚本语言,由下列三个不同部分组成:
         ECMAScript,由ECMA-262定义,提供核心语言功能
         文档对象模型(DOM),提供访问和操作网页的方法和接口
         浏览器对象模型(BOM),提供了与浏览器交互的方法和接口

在javascript载入时,在<script>中添加async,表示立即下载脚本,但是只应用到载入外部文档,应用到多个载入时会把载入顺序变得杂论。这必须要求外部文档无关联。

现代的WEB应用,一般把全部的javascript放在<body>元素中页面内容的后面,这样可以让人感觉到文档载入速度加快。



对于文档的标准模式,可以使用下面的任何一种文档类型进行开启:
<!-- HTML 4.01 严格型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 //EN" "http://www.w3.org/TR/html4/strict.dtd">

<!-- XHTML 1.0 严格型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/xhtml-strict.dtd">

<!-- HTML 5-->
<!DOCTYPE html>

对于准标准模式,可以使用框架集或者过度类型来触发载入文档
<!-- HTML 4.01 过渡型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!-- HTML 4.01 框架集型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/rameset.dtd">

<!-- XHTML 1.0 过渡型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0  Transitional //EN" "http://www.w3.org/TR/xhtml1/xhtml- transitional .dtd">

<!-- XHTML 1.0 框架集型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0   Frameset //EN" "http://www.w3.org/TR/xhtml1/xhtml-  frameset .dtd">

一般提到的标准模式就是上面的两种之一。


<noscript>包含的内容只有在不支持javascript或者在禁用javascrip的时候才会显示。
   


严格模式
在严格模式下,一些不确定的信息会得到处理,一些会抛出异常。要想在整个脚本中启用严格模式:
要在脚本的顶部添加"use strict";这是一个编译指示,也可以在函数内部第一行添加,在函数内部执行严格模式。

用一条语句定义多个变量时,可以参照:   var message="hi",found=false,age=28;

对一个值执行typeof操作符会返回下列的情况:
"undifined":如果这个值没有定义
"boolean":如果这个值是布尔值
"string":如果这个值是字符串
"number":如果这个值是数字
"object":如果这个值是对象或者null
"function":如果这个值是函数

在条件判断中null==undefined会返回true

其他数据类型转化为boolean类型的规则:
Boolean           true                                     false
String              非空字符串                         ""
Number           任意非零数字                     0和NaN
Object              任何对象                            null
Undefined         N/A(不适用)                  undefined


javascript的数值范围是有限制的,如果超过这个范围会转化为最近的无穷大和无穷小,不能参加下一步的运算。当运算的数值接近极限的时候,需要进行判断。

NaN,即非数值(not a number)是一个特殊的数值,这个数值表示本来需要返回数字的地方未返回数字的情况。例如任意数字除以0,会得到NaN。这个数值会有两个不同寻常的特点。任何涉及NaN的操作都会返回NaN。NaN与任何数值都不相等,包括它自身NaN。isNaN()函数会帮我们判断参数是否是一个“不是数值”。

数值转换
在转换时会用到三个函数:Number(),parseInt(),parseFloat().
Number()转换规则如下:
    1.Boolean类型,true=1,false=0
    2.Number,直接返回
    3.null=0
    4.undefined,返回NaN
    5.字符串类型,包含数字返回数字,忽略前面的0,包含有效地浮点格式,返回浮点数值,包含十六进制,返    
       回十进制数字,如果是空字符串,返回0,如果无以上情况返回NaN。
    6.如果是对象,调用对象的valueOf()方法,然后依照前面转化。如果转化为NaN,调用对象的toString()方
       法,再依照前面的规则转化。
parseInt()转换规则如下:
     忽略前面的空格,判断第一个字符是否是数字,直到结尾或非数字,停止解析返回数字。如果不符合前面的规则,返回NaN。parseInt(值,进制)。parseFloat类似parseInt.

字符串的转化 
toString()和String()

位操作符
按位非(NOT)
返回二进制的反码。举例:var num=12;~num;
按位或(OR)
返回二进制不同部分的和。举例:var msg=25|3;
按位与(AND)
返回二进制相同部分。举例var msg=25&3;

左移操作(<<)
右移操作(>>)

==与===的关系


使用label语句可以在代码中添加标签
label:statement     举例:start:for(var i=0;i<n;i++){alert(i);}

with,将代码的作用域设置到特定的作用域中

javascript没有函数的重载,但是可以在函数内部处理成为类似函数重载的样子。




你可能感兴趣的:(javascript 基础概念补充点)