前端的javascript资源整理和学习笔记
资源整理·
菜鸟教程·
https://www.runoob.com/js/js-tutorial.html
w3school·
https://www.w3school.com.cn/js/index.asp
慕课网教程笔记·
教程网站:
https://www.imooc.com/learn/36 入门篇—对应本部分1-3
https://www.imooc.com/learn/10 进阶篇—对应本部分4-8
1.入门·
引入JS·
1 | 1.插入JS |
注意: javascript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时是按先后顺序的,所以前面的script就先被执行。比如进行页面显示初始化的js必须放在head里面,因为初始化都要求提前进行(如给页面body设置css等);而如果是通过事件调用执行的function那么对位置没什么要求的。
语句和符号·
基本格式:语句;
分号也可不加
注释·
1 | // 单行 |
变量声明·
1 | var a; |
基本语句 和java、C一样·
1 | if(条件) |
函数·
1 | function 函数名() |
2.常用互动方法·
输出内容(document.write)·
第一种:输出内容用"“括起,直接输出”"号内的内容。·
1 | <script type="text/javascript"> |
第二种:通过变量,输出内容·
1 | <script type="text/javascript"> |
第三种:输出多项内容,内容之间用+号连接。·
1 | <script type="text/javascript"> |
第四种:输出HTML标签,并起作用,标签使用""括起来。·
1 | <script type="text/javascript"> |
关于JS输出空格问题,请查看wiki中" JS如何输出空格 "
警告(alert 消息对话框)·
1 | alert(字符串或变量); |
注意:
- 在点击对话框"确定"按钮前,不能进行任何其它操作。
- 消息对话框通常可以用于调试程序。
- alert输出内容,可以是字符串或变量,与document.write 相似。
确认(confirm 消息对话框)·
语法:·
1 | confirm(str); |
参数说明:·
1 | str:在消息对话框中要显示的文本 |
返回值:·
1 | 当用户点击"确定"按钮时,返回true |
注1: 通过返回值可以判断用户点击了什么按钮
注2: 消息对话框是排它的,即用户在点击对话框按钮前,不能进行任何其它操作。
提问(prompt 消息对话框)·
弹出消息对话框(包含一个确定按钮、取消按钮与一个文本输入框)。
语法:·
1 | prompt(str1, str2); |
参数说明:·
1 | str1: 要显示在消息对话框中的文本,不可修改 |
返回值:·
1 | 1. 点击确定按钮,文本框中的内容将作为函数返回值 |
打开新窗口(window.open)·
open() 方法可以查找一个已经存在或者新建的浏览器窗口。
语法:
1 | window.open([URL], [窗口名称], [参数字符串]) |
参数说明:
1 | URL:可选参数,在窗口中要显示网页的网址或路径。如果省略这个参数,或者它的值是空字符串,那么窗口就不显示任何文档。 |
参数表:
例如:打开http://www.imooc.com网站,大小为300px * 200px,无菜单,无工具栏,无状态栏,有滚动条窗口:
1 | <script type="text/javascript"> window.open('http://www.imooc.com','_blank','width=300,height=200,menubar=no,toolbar=no, status=no,scrollbars=yes') |
**注意:**运行结果考虑浏览器兼容问题。
关闭窗口(window.close)·
用法:
1 | window.close(); //关闭本窗口 |
或
1 | <窗口对象>.close(); //关闭指定的窗口 |
3.DOM操作·
DOM介绍·
文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。
DOM 将HTML文档呈现为带有元素、属性和文本的树结构(节点树)。
通过ID获取元素·
1 | var mychar= document.getElementById("con"); |
注:获取的元素是一个对象,如想对元素进行操作,我们要通过它的属性或方法。
innerHTML 属性·
用于获取或替换 HTML 元素的内容
1 | <script type="text/javascript"> |
改变 HTML 样式·
1 | Object.style.property=new style; |
**注意:**Object是获取的元素对象,如通过document.getElementById(“id”)获取的元素。
基本属性表(property):
**注意:**该表只是一小部分CSS样式属性,其它样式也可以通过该方法设置和修改。
显示和隐藏(display属性)·
1 | Object.style.display = value |
value取值:·
控制类名(className 属性)·
1 | object.className = classname |
本章思路小结·
graph LR a[document.getElementById方法通过ID获取元素-即DOM对象]-->b[修改对象的属性] b-->c[Object.innerHTML改变代码] b-->d[Object.style.property改变样式] b-->e[Object.display改变隐藏与否] b-->f[Object.classname改变类名]
4.数组·
1 | var myarray=new Array(); //创建 括号内可以设置个数 |
5.事件响应·
事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。
主要事件表·
1 | <form> |
onfocus和onblur是相对于一个区域的焦点说的
加载事件(onload)·
事件会在页面加载完成后,立即发生,同时执行被调用的程序。
注意:加载页面时,触发onload事件,事件写在<body>
标签内。
卸载事件(onunload)·
当用户退出页面时(页面关闭、页面刷新等),触发onUnload事件,同时执行被调用的程序。
注意:不同浏览器对onunload事件支持不同。
6.JS内置对象·
Date日期对象·
定义一个时间对象 :
1 | var Udate=new Date(); /*使 Udate 成为日期对象,并且已有初始值:当前时间(当前电脑系统时间)。*/ |
注意:使用关键字new,Date()的首字母必须大写。
如果要自定义初始值,可以用以下方法:
1 | var d = new Date(2012, 10, 1); //2012年10月1日 |
我们最好使用下面介绍的方法来严格定义时间。
访问方法语法:“<日期对象>.<方法>”
Date对象中处理时间和日期的常用方法:
String 字符串对象·
1 | var str="I Love Beijing"; |
Math对象·
Math 对象是一个固有的对象,无需创建它,直接把 Math 作为对象使用就可以调用其所有属性和方法。这是它与Date,String对象的区别。
常用的属性、方法·
属性:Math.PI
方法:Math.ceil()
(向上取整) Math.floor()
(向下取整) Math.round()
(四舍五入) Math.random()
(随机数,返回一个$[0,1]$区间内的随机数)
Math 对象属性·
Math 对象方法·
Array 数组对象·
数组定义的方法·
1.定义了一个空数组:
1 | var 数组名= new Array(); |
2.定义时指定有n个空元素的数组:
1 | var 数组名 =new Array(n); |
3.定义数组的时候,直接初始化数据:
1 | var 数组名 = [<元素1>, <元素2>, <元素3>...]; |
我们定义myArray数组,并赋值,代码如下:
1 | var myArray = [2, 8, 6]; |
**说明:**定义了一个数组 myArray,里边的元素是:myArray[0] = 2; myArray[1] = 8; myArray[2] = 6。
数组元素使用·
1 | 数组名[下标] = 值; |
注意: 数组的下标用方括号括起来,从0开始。
数组属性·
length 用法:<数组对象>.length;返回:数组的长度,即数组里有多少个元素。它等于数组里最后一个元素的下标加一。
数组方法·
常用方法·
arrayObject.concat(array1,array2,...,arrayN)
返回一个新数组,原数组不改变
arrayObject.join(分隔符)
把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
arrayObject.reverse()
颠倒数组中元素的顺序。原数组改变
arrayObject.slice(start,end)
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。类似python
的切片
arrayObject.sort(方法函数)
注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若返回值**<=-1**,则表示 A 在排序后的序列中出现在 B 之前。若返回值**>-1 && <1**,则表示 A 和 B 具有相同的排序顺序。若返回值**>=1**,则表示 A 在排序后的序列中出现在 B 之后。
1 | function sortNum(a,b) { |
7.window对象·
window对象是BOM的核心,window对象指当前的浏览器窗口。
window对象方法·
8.认识DOM·
HTML文档可以说由节点构成的集合,DOM节点有:
1. 元素节点:<html>、<body>、<p>
等都是元素节点,即标签。
2. **文本节点:**向用户展示的内容,如<li>...</li>
中的文本。
3. **属性节点:**元素属性,如<a>
标签的链接属性href=“http://www.imooc.com”。
节点属性·
遍历节点树·
DOM操作·
**注意:**前两个是document方法。