JavaScript基础知识(学习笔记)

时间:2021-10-03 05:34:52

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.调用的函数