一:DOM和BOM区别
BOM是浏览器对象模型,用来获取或设置浏览器的属性、行为,例如:新建窗口、获取屏幕分辨率、浏览器版本号等。
DOM是文档对象模型,用来获取或设置文档中标签的属性,例如获取或者设置input表单的value值。
BOM的内容不多,主要还是DOM。
由于DOM的操作对象是文档(Document),所以dom和浏览器没有直接关系。
兼容性:
JavaScript由3部分组成: ECMAScript:解释器、翻译兼容性:完全兼容
DOM:Document Object Model (文本对象)兼容性:部分不兼容
BOM:Browser Object Model (浏览器对象)兼容性:不兼容(例如IE,谷歌,火狐,不可能兼容)
二:知识点
1、html输出:document.write('输出内容');
警告
请使用 document.write() 仅仅向文档输出写内容。
如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖
2、onclick: <button type="button" onclick="alert('Welcome!')">点击这里</button>
3、alert('弹出提示'):多用于测试代码
4、改变html内容:x=getElementById('id属性值');
x.innerHTML='新的值内容';
5、改变html图像:
1 <!DOCTYPE html> 2 <html> 3 <body> 4 <script> 5 function changeImage() 6 { 7 element=document.getElementById('myimage') 8 if (element.src.match("bulbon")) 9 { 10 element.src="/i/eg_bulboff.gif"; 11 } 12 else 13 { 14 element.src="/i/eg_bulbon.gif"; 15 } 16 } 17 </script> 18 19 <img id="myimage" onclick="changeImage()" src="/i/eg_bulboff.gif"> 20 21 <p>点击灯泡来点亮或熄灭这盏灯</p> 22 23 </body> 24 </html>
6、改变html样式
x=document.getElementById("demo") //找到元素 x.style.color="#ff0000"; //改变样式
7、验证输入
if isNaN(x) {alert("Not Numeric")};
8、<script></script>
任何浏览器都可以解析,识别里面的js代码,不用再写type='text/javascript';
9、script 中的src属性设置外联外联js文件
<script src="myScript.js"></script>
外部脚本不能包含 <script> 标签
10、分号
分号用于分隔 JavaScript 语句。
通常我们在每条可执行的语句结尾添加分号。
使用分号的另一用处是在一行中编写多条语句。
提示:您也可能看到不带有分号的案例。
在 JavaScript 中,用分号来结束语句是可选的。
11、JavaScript 对大小写是敏感的
12、JavaScript 会忽略多余的空格
13、JavaScript 是脚本语言。浏览器会在读取代码时,逐行地执行脚本代码。而对于传统编程来说,会在执行前对所有代码进行编译。
14、单行注释以 // 开头
多行注释/*....*/。
15、变量如同代数(可存放值、字符串和表达式)
var x=2; var y=3; var z=x+y;
16、如果重新声明 JavaScript 变量,该变量的值不会丢失:
在以下两条语句执行后,变量 carname 的值依然是 "Volvo":
var carname="Volvo"; var carname;
17、
JavaScript 只有一种数字类型。数字可以带小数点,也可以不带:
var x1=34.00; //使用小数点来写 var x2=34; //不使用小数点来写
极大或极小的数字可以通过科学(指数)计数法来书写
var y=123e5; // 12300000 var z=123e-5; // 0.00123
18、声明变量类型
当您声明新变量时,可以使用关键词 "new" 来声明其类型:
var carname=new String; var x= new Number; var y= new Boolean; var cars= new Array; var person= new Object;
JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。
19、属性和方法
属性是与对象相关的值。
方法是能够在对象上执行的动作。
20、自定义对象
person=new Object(); person.firstname="Bill"; person.lastname="Gates"; person.age=56; person.eyecolor="blue";
21、文本变大写属性:toUpperCase()
var message="Hello world!"; var x=message.toUpperCase();
22、命名
多使用小驼峰,不使用下划线
23、函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
24、局部变量:在函数内声明的变量,只有该函数可以调用,函数运行完毕,局部变量就会被删除。
25、全局变量:在函数外声明的变量,网页上的所有脚本和函数都可以使用,页面关闭后会被删除。
26、如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
carname="Volvo";
将声明一个全局变量 carname,即使它在函数内执行。
27、字符串连接‘+’。
28、数字与字符串相加,得到的是字符串。
29、switch中的default:
switch (day) { case 6: x="Today it's Saturday"; break; case 0: x="Today it's Sunday"; break; default: x="Looking forward to the Weekend"; }
30、setTimeout和setInterval.
①setTimeout(表达式,延时时间)在执行时,是在载入后延迟指定时间后,去执行一次表达式
<script> setTimeout("alert(‘对不起, 要你久候’)", 3000 )
或者如下:
setTimeout(function(){
...},3000); </script>
②setInterval(表达式,交互时间)则不一样,它从载入后,每隔指定的时间就执行一次表达式
③区别:
//每60秒执行myFunction()一次
setInterval("myFunction()",60000);
funcition myFunction(){
alert(’myFunction()’);
}
//每60秒执行一次myFunction()
setTimeout("myFunction()",60000); //需要函数触发
//如 放置在 body 的 onload事件里面