JavaScript基础知识(学习笔记)
1. 在JavaScript中所有事物都是对象:字符串、数字、数组、日期等等
2. 在JavaScript中,对象是拥有属性和方法的数据
3. 属性是与对象相关的值,方法是能够在对象上执行的动作
4. 函数是由事件驱动的或者当它被调用执行的可重复使用的代码块
5. 在调用函数时,可以向其传递值,这些值被称为参数,这些参数可以在函数中使用
6. 在使用return 语句时,函数会终止执行,并返回确定的值
7. 在JavaScript函数内部声明的变量是局部变量,所以只能在函数内部访问它(该变量的作用域是局部的)
8. 在函数外声明的变量是全局变量,网页上所以的脚本和函数都能访问它
9. 全等(===),其值和类型都要相等
10. For/in 语句循环遍历对象的属性,属性的概念,例如:person类中的name、age就是属性
11. JavaScript可用来在数据被传送服务器前对HTML表单中的这些输入数据进行验证
12. 通过可编程的对象模型,JavaScript获得了足够的能力来创建动态的HTML,JavaScript能够改变页面中的所有的HTML元素。JavaScript能够改变页面中所有的HTML属性。JavaScript能够改变页面中所有的CSS样式。JavaScript能够对页面中的所有事件作出反应
13. 操作HTML元素,你必须首先先找到该元素,有三种方法:通过id找到HTML元素,通过标签名找到HTML元素,通过类名找到HTML元素
14. HTML事件的例子:当用户点击鼠标时,当网页已加载时,当图像已加载时,当鼠标移动到元素上时,当输入字段被改变时,当提交HTML表单时,当用户触发按键时
15. document.getElementById("one").onclick=function(){fun()};这个即使用HTML DOM来分配事件,向button元素分配onclick事件
16. onload和onunload事件会在用户进入或离开页面时被触发。onload事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。onload和onunload事件可用于处理cookie
17. onchange事件常结合对输入字段来使用。
18. onmouseover和ommouseout事件可用于在用户的鼠标移至HTML元素时触发函数。
19. onmousedown、onmouseup以及onclick构成了鼠标点击事件的所有部分。首先当点击鼠标按钮时,会触发onmousedown事件,当释放鼠标按钮时,会触发onmouseup事件。最后,当完成鼠标点击时,会触发onclick事件
20. onfocus事件:当指针移动到元素上方时,改变其背景色
21. JavaScript中的所有事物都是对象:字符串、数值、数组、函数等等。此外,JavaScript允许自定义对象
22. 创建对象的两种方法:1.定义并创建对象的实例 2.使用函数来定义对象,然后创建新的对象实例。
23. JavaScript是面向对象的语言,但JavaScript不使用类。在JavaScript中,不会创建类,也不会通过类来创建对象
24. IndexOf()方法来定位字符串中某一个指定的字符首次出现的位置。
25. match()方法来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。
26. 如何替换字符串中的字符---replace()
var str="Visit Microsoft!"
document.write(str.replace(/Microsoft/,"W3School"))
27. 返回当前的日期和时间,使用Date()方法。getTime()方法返回从1970年1月1日至今的毫秒数。SetFullYear()方法设置具体的日期。toUTCString()将当前的日期(根据UTC)转换为字符串。getDay()显示的是星期,可和数组来显示星期,而不仅仅是数字。
28. 在网页上显示一个时钟(代码转自W3School)
<html> <head> <script type="text/javascript"> function startTime() { var today=new Date() var h=today.getHours() var m=today.getMinutes() var s=today.getSeconds() m=checkTime(m) s=checkTime(s) document.getElementById('txt').innerHTML=h+":"+m+":"+s t=setTimeout('startTime()',500) } function checkTime(i) { if (i<10) {i="0" + i} return i } </script> </head> <body onload="startTime()"> <div id="txt"></div> </body> </html>
29. 可使用concat()方法来合并两个数组
30. 用数组的元素组成字符串-----join() 即将数组的所有元素组成一个字符串。
31. 可使用sort()方法从字面、数值上对数组进行排序
32. round()方法:四舍五入Math.round()
33. random()返回0到1之间的随机数
34. Math.max(5,7) max()来返回两个给定的数中较大的数。min()类同
35. RegExp对象用于规定在文本中检索的内容RegExp是正则表达式的缩写。当你检索某个文本时,可以使用一种模式来描述要检索的内容,RegExp就是这种模式。
36. 定义RegExp:RegExp对象用于存储检索模式。通过new关键字来定义RegExp对象。RegExp对象有3个方法:test()、exec()以及compile()。test()方法检索字符串中的指定值,返回值是true或false。exec()方法检索字符串中的指定值,返回值是被找到的值,如果没有匹配,则返回null。compile()方法用于改变检索模式,也可以添加或删除第二个参数。(代码转自W3School)
<html> <body> <script type="text/javascript"> var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free")); patt1.compile("d"); document.write(patt1.test("The best things in life are free")); </script> </body> </html>
37. 浏览器对象模型(BOM),由于现代浏览器已经(几乎)实现了JavaScript交互性方面的相同方法和属性,因此常被认为是BOM的方法和属性。
38. 所有浏览器都支持window对象,它表示浏览器窗口。所有JavaScript全局对象,函数以及变量均自动成为window对象的成员。全局变量是window对象的属性。全局函数是window对象的方法。其他 Window 方法
window.open() - 打开新窗口
window.close() - 关闭当前窗口
window.moveTo() - 移动当前窗口
window.resizeTo() - 调整当前窗口的尺
39. Window.screen对象包含有关用户屏幕的信息。window.screen对象在编写时可以不适用window这个前缀 screen.availWidth—可用的屏幕宽度 screen.availHeight—可用的屏幕高度。screen.availWidth属性返回访问者屏幕的宽度,以像素计,减去界面特性,比如窗口任务栏。screen.availHeight属性返回访问者屏幕的高度,以像素计,减去界面特性,比如窗口任务栏,即返回你的屏幕的可用高度。
40. Window.location对象用于获得当前页面的地址(URL),并把浏览器重定向到新的页面。Window.location对象在编写的时候可不使用window这个前缀。Location.hostname返回web主机的域名。Location.pathname返回当前页面的路径和文件名,即返回URL的路径名。Location.port返回web主机的端口(80或443)。Location.protocol返回所使用的web协议。location.href属性返回当前页面的URL。Location.assign方法加载新的文档。
<!DOCTYPE html> <html> <head> <script> function fun(){ location.assign("这里写一个网址"); } </script> </head> <body> <input type="button" value="加载新文档" onclick="fun()"> </body> </html>
41. Window.history对象 包含浏览器的历史。history.back()—与在浏览器点击后退按钮相同。history.forward()---与在浏览器中点击按钮向前相同。history.back()方法加载历史列表中前一个URL,这与在浏览器中点击后退按钮时相同的。History.forward方法加载历史列表的下一个URL,这与浏览器中点击前进按钮时相同的。
42. window.navigator对象包含有关访问者浏览器的信息。警告:来自navigator对象的信息具有误导性,不应该被用于检测浏览器版本,这是因为:navigator数据可被浏览器使用者更改。 浏览器无法报告晚于浏览器发布的新操作系统。
43. 可以在JavaScript中创建三种消息框:警告框、确认框、提示框。
44. 警告框语法:alert()
45. 确认框 confirm() 确认框用于使用户可以验证或者接受某些信息,当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作 如果用户点击确认,那么返回值为true,如果用户点击取消,那么返回值为false。
46. 提示框经常用于提示用户在进入页面前输入某个值。当提示框出现后,用户需要输入某个值,让后点击确认或取消按钮才能继续操纵。如果用户点击确认,那么返回值为输入的值,如果用户点击取消,那么返回值为null。其语法是:prompt();
47. 通过使用JavaScript,我们有能力做到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行,我们称之为计时事件。在JavaScript中使用计时事件,两个关键方法是:setTimeoue() 未来的某时执行代码 clearTimeout() 取消setTimeout()
48. setTimeout()方法会返回某个值,语法:var t =setTimeout(“JavaScript语句”,毫秒);
而取消setTimeout(),语法:clearTimeout(t)
49. 无限循环计时器(代码转自W3School)
<html> <head> <script type="text/javascript"> var c=0 var t function timedCount() { document.getElementById('txt').value=c c=c+1 t=setTimeout("timedCount()",1000) } </script> </head> <body> <form> <input type="button" value="开始计时!" onClick="timedCount()"> <input type="text" id="txt"> </form> <p>请点击上面的按钮。输入框会从 0 开始一直进行计时。</p> </body> </html>
50. 带有停止按钮的无穷循环中的计时事件(代码转自W3School)
<html> <head> <script type="text/javascript"> var c=0 var t function timedCount() { document.getElementById('txt').value=c c=c+1 t=setTimeout("timedCount()",1000) } function stopCount() { c=0; setTimeout("document.getElementById('txt').value=0",0); clearTimeout(t); } </script> </head> <body> <form> <input type="button" value="开始计时!" onClick="timedCount()"> <input type="text" id="txt"> <input type="button" value="停止计时!" onClick="stopCount()"> </form> <p>请点击上面的“开始计时”按钮来启动计时器。输入框会一直进行计时,从 0 开始。点击“停止计时”按钮可以终止计时,并将计数重置为 0。</p> </body> </html>
51. Cookie用来识别用户(代码转自W3School)
创建一个欢迎cookie
<html> <head> <script type="text/javascript"> function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "=") if (c_start!=-1) { c_start=c_start + c_name.length+1 c_end=document.cookie.indexOf(";",c_start) if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_start,c_end)) } } return "" } function setCookie(c_name,value,expiredays) { var exdate=new Date() exdate.setDate(exdate.getDate()+expiredays) document.cookie=c_name+ "=" +escape(value)+ //escape() 函数可对字符串进行编//码,这样就可以在所有的计算机上读取该字符串。 ((expiredays==null) ? "" : "; expires="+exdate.toGMTString()) } function checkCookie() { username=getCookie('username') if (username!=null && username!="") {alert('Welcome again '+username+'!')} else { username=prompt('Please enter your name:',"") if (username!=null && username!="") { setCookie('username',username,365) } } } </script> </head> <body onLoad="checkCookie()"> </body> </html>
52. 什么是cookie?cookie是储存于访问者的计算机中的变量,每当同一台计算机通过浏览器请求某个页面时,就会发送这个cookie,你可以是哟和JavaScript来创建和取回cookie的值。
有关cookie的例子:1、名字cookie 当访问者首次访问页面时,访问者也许会填写他们或她们的名字,名字会储存于cookie中,当访问者再次访问该网站时,访问者会收到雷士“Welcome”的欢迎词。而名字则是从cookie中取回的。2.密码cookie 3.日期cookie
53. JavaScript框架(库) JavaScript高级程序设计(特别是对浏览器的复杂处理),通常很困难也很耗时。为了应对这些调整,许多的JavaScript库应运而生。这些JavaScript库常称为JavaScript框架。比较受欢迎的是jQuery、prototype、MooTools。所有这些框架都提供针对对常见JavaScript任务的函数、包括动画、DOM操作以及ajax处理。
54. jQuery是目前最受欢迎的JavaScript框架,它使用css选择器来访问和操作网页上的HTML(DOM对象)。jQuery同时提供companion UI(用户界面)和插件。
55. Prototype是一种库,提供用于执行常见web任务的简单API。API是应用程序编程接口的缩写,它是包含属性和方法的库,用于操作HTML DOM。Prototype通过类和继承,实现了对JavaScript的增强。
56. MooTools也是一个框架,提供了可使常见的JavaScript编程更为简单的API。MooTools也包含有一些轻量级的效果和动画函数。
57. jQuery描述:主要的jQuery函数是$()函数。如果向该函数传递DOM对象,带有向其添加的jQuery功能。jQuery允许通过css选择器来选取元素。jQuery允许链接。链接是一种在同一对象上执行多个任务的便捷方法。
58. prototype提供的函数可使HTML DOM编程更容易。与jQuery类似,Prototype也有自己的$()函数。$()函数接收HTML DOM元素的id值(或DOM元素),并会向DOM对象添加新的功能。与jQuery不同,Prototype没有用以取代window.onload()的ready()方法。相反,Prototype会向浏览器及HTML DOM添加扩展。Event.observe()接收三个参数:1.希望处理的html DOM或BOM(浏览器对象模型)对象 2.处理的事件 3.调用的函数