JavaScript要点汇总——The Most Important
关于JavaScript的基础变量,运算符的详解以及基本的分支循环嵌套已经在
说过了,今天我们所说的是做网页中最长用到的东西。内容不算少,要有耐心,慢慢看
1.函数的声明及调用:
2.JS中的BOM(浏览器对象模型)
window对象的常用方法,均可以省略前面的window.,比如close();
1、prompt:弹窗接受用户输入;
2、alert:弹窗警告;
3、confirm:带有确认/取消 按钮的提示框;
4、close:关闭当前浏览器选项卡
5、open:重新打开一个窗口,传入参数:URL/窗口名称/窗口特征
6、setTimeout:设置延时执行,只会执行一次
7、setInterval:设置定时器,循环每隔n毫秒执行一次
两个参数:需要执行的function/毫秒
8、clearTimeout: 清除延时
9、clearInterval:清除定时器
传入参数:调用setInterval时返回一个ID,通过变量接受ID,传入setInterval
其中设置延时执行与设置定时器很常用,下面是他们的用法示例:
var timeOutId = setTimeout(function(){
console.log("setTimeout");
},5000);
setInterval(function(){
console.log("setInterval");
},1000);
3.JS中的DOM
1、鼠标事件:click/dbclick/mouseover/mouseout/mousemove/mousedown/mouseup
2、键盘事件:
keydown:键盘按下去触发
keypress:键盘按下并松开的瞬间触发
keyup:键盘抬起时触发
[注意事项:(了解)]
①执行顺序:keydown-keypress-keyup
②长按时,会循环不断地执行keydown-keypress
③有keydown事件时,不一定有keyup事件,(事件触发过程中,鼠标移走,可能就没有keyup)
④keypress只能捕获字母、数字、符号键,不能捕获功能键;keydown/keyup基本可以捕获所有的功能键(特殊除外)
⑤keypress区分大小写,keydown和keyup不区分
⑥keydown/keyup区分主键盘和小键盘,keypress不区分
【确定键盘触发按键】
1、在触发过程中,传入参数e,代表按键时间;
2、通过e.keyCode,确认按键ASCII码值,进而确定按键;
3、所有浏览器系统的写法(一般不必要):
var evn = e||event;//取到键盘事件
var code = evn.keyCode||evn.which||evn.charCode;//取到按键
【JS中的DOM0事件模型】
1、内联模型:直接将函数名作为HTML标签的某个事件属性的属性值;
eg:<button onclick="func()">按钮</button>
缺点:违反W3C关于HTML与JavaScript分离的基本原则;
2、脚本模型:在JS脚本中通过事件属性进行绑定;
eg:window.onload = function(){}
3、局限性:同一节点,只能绑定同类型事件
【JS中的DOM2事件模型】
1、添加事件绑定:
IE10之前:btn1.attachEvent("onclick",函数);
其他浏览器:btn1.addEventListener("onclick",函数,true/false);
参数三:false(默认),表示事件冒泡;true,表示事件捕获
兼容写法:
if(btn1.attachEvent){
btn1.attachEvent();
}else{
btn1.addEventListener();
}
优点:同一节点,可以添加多个同类型事件的监听器;
【JS中的事件流】
1、事件冒泡:当某DOM元素触发某事件时,会从当前DOM元素开始,逐个触发其祖先元素的同类型事件,直到DOM根节点
DOM0模型,均为事件冒泡;
IE中使用:.attachEvents()添加的事件,均为冒泡;
其他浏览器:.addEventsListener添加的事件,当第三个参数为false时,为冒泡。
2、事件捕获:当某DOM元素触发某事件时,会从DOM根节点开始,逐个触发其祖先元素的同类型事件,直到触发到当前元素为止;
只有使用.addEventsListener添加的事件时,并设置第三个参数为true时,才进行捕获;
↓ 当前元素 ↑
↓ ↑
冒 父元素 捕
↓ ↑
泡 爷爷元素 获
↓ ↑
↓ DOM根节点 ↑
3、阻断事件冒泡(重点):
IE浏览器中:将e.cancelBubble属性设为true;
其他浏览器:调用e.stopPropagation();方法
兼容写法:
function myParagraphEventHandler(e) {
e = e || window.event;
if (e.stopPropagation) {
e.stopPropagation(); //IE以外
} else {
e.cancelBubble = true; //IE
}
}
下面是一个检测你按键的代码:
document.onkeydown = function(e){
var evn = e||event;
var code = evn.keyCode||evn.which||evn.charCode;
console.log(e);
console.log("keydown");
if(code==13){
alert("你按了回车");
}
}
5.JS中的数组与内置对象
①对象:对象包含一系列无序属性和方法的集合;
②键盘对:对象中的数据,是以键盘对的形式存在的,以键取值;
③属性:描述对象特征的一系列变量。【对象中的变量】
④方法:描述对象行为的一系列方法。【对象中的函数】
2、对象的声明:
①字面量声明:
var obj = {
key1:value1, //属性
key2:value2,
func:function(){} //方法
}
=-=对象中的键,可以是任何数据类型,但,一般用作普通变量名(不需要"")即可
=-=对象中的值可以是任何数据类型,但,字符串的话必须用""包裹
=-=多组键值对之间用英文逗号分隔,键值对的键与值之间用英文:分隔
new关键字:
var liSi = new Object();
liSi.name = "李四";
liSi.say = function(){
console.log("我是:"+this.name);
}
3、对象中属性和方法的读写
①.运算符:
对象内部:this.属性名 this.方法名()
对象外部:对象名.属性名 对象名.方法名()
②通过["key"]调用 : 对象名["属性名"]()
>>>如果key中包含特殊字符,则无法使用第①中方式,必须使用第二种;
>>>对象中,直接写变量名,默认为调用全局变量,如果需调用对象自身属性,则需要通过this关键字
③删除对象的属性和方法:delete 对象名.属性/方法名
var email=document.getElementById("mail").value;
var reg3=/^\w+\@[a-zA-Z0-9]{2}[a-zA-Z0-9]?\.[a-z]{2}[a-z]?$/
if(reg3.test(email)){
console.log("right");
}
else{
console.log("wrong");
}
OK喽,相信会了这些,写一些原生的JS去实现功能已经不成问题了!个人感觉最重要的还是学会去取节点,能取到想到的节点,什么事都好说。。。
JavaScript要点汇总——The Most Important的更多相关文章
- javascript 要点
javascript 要点 1 JavaScript:写入 HTML 输出 document.write("<h1>This is a heading</h1>&qu ...
- 《Javascript启示录》要点汇总
前言:本文是阅读<Javascript启示录>后的一个读书笔记,对本书的要点进行了一个归纳,不是原创内容哦.要想详细了解相关内容,请阅读原书. 对象是由存储值的已命名属性组成的. Java ...
- javascript树形汇总金额
在开发企业应用的时候总会遇到树形汇总金额的场景,即将树形的列表中的叶子节点(没有子节点)的金额汇总到父节点上. 这种需求一般是在前端进行处理,即使用JavaScript处理,因为叶子节点的金额可能是不 ...
- CodeIgniter框架——知识要点汇总
NO1.学习要点: 一.CodeIgniter 框架的简介 二.CodeIgniter 框架的安装 三.CodeIgniter 框架的目录结构分析 四.CodeIgniter 框架是如何工作的? 五. ...
- JavaScript学习汇总
对于JavaScript,还是无法割舍,有心无力,时间总是匆匆,暂且都放在这里吧 javascript中this的使用 写的很不错的一偏文章,简单看了下,mark了吧 原文:http://davids ...
- css div要点汇总
1.子元素选择两种 h1 strong{color:red}意思是所有后代只要是strong就变成红色 h1>strong{color:red}效果同上但只对第一代后代元素有效 相邻兄弟元素 h ...
- JavaScript要点(十七) Math 对象
来源:JavaScript 参考手册 Math 对象 Math 对象用于执行数学任务. Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(). 语法 var ...
- javascript算法汇总(持续更新中)
1. 线性查找 <!doctype html> <html lang="en"> <head> <meta charset="U ...
- JavaScript要点(十三) HTML DOM EventListener
addEventListener() 方法 <body> <p>该实例使用 addEventListener() 方法在按钮中添加点击事件. </p> <bu ...
随机推荐
- Mybatis事务(二)事务隔离级别
一般数据库的隔离级别有4个,由低到高依次为Read uncommitted.Read committed.Repeatable read.Serializable,这四个级别可以逐个解决脏读.不可重复 ...
- Java将网络地址对应的图片转成本地的图片
只知道浏览器使用的是HTTP协议,那么如何将网络资源使用JavaHTTP下载下来呢! 这只是一个非常简单的小示例,只是不想每次碰到关于此方面的内容忘了就无从下手! 示例创建HttpURLConn ...
- 【Unity Shaders】Diffuse Shading——向Surface Shader添加properties
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- 18_Android中Service的生命周期,远程服务,绑定远程服务,aidl服务调用,综合服务案例,编写一个应用程序调用远程支付宝远程服务场景
============================================================================ 服务的生命周期: 一.采用start的方式开始 ...
- 1.1、Libgdx目标和特性
Libgdx是一个通过统一的API工作在所有支持平台(Windows,Linux,Mac OS X,Android,黑莓,HTML/WebGL)的一个Java游戏开发框架. 框架提供了一个快速原型和快 ...
- C#之委托和事件
我想,读者们可能看过一部电影叫<全民目击>,在电影中,富豪林泰婚期将至,准新娘却惨死地下停车场,林泰的富二代女儿林萌萌成为最大嫌疑人,林泰不惜重金聘请国内顶级律师周莉为女儿辩护,而公诉方却 ...
- Rest api简介
理解和使用内容协商 我们的开发者在发送一个 REST API 请求的同时,根据应用场景,针对相同的资源,可能会期待不同的返回形式. 比如,我希望根据用户客户端语言,同一个资源的内容可以返回不同的语言. ...
- FFMPEG结构体分析:AVCodecContext
注:写了一系列的结构体的分析的文章,在这里列一个列表: FFMPEG结构体分析:AVFrame FFMPEG结构体分析:AVFormatContext FFMPEG结构体分析:AVCodecConte ...
- Cocoa公历和中国农历直接的转换
看过某书上面的做法是先生成一个公历的calendar,使用的是: NSCalendar *cal = [NSCalendar currentCalendar]; 然后用它生成一个NSDateCompo ...
- 【55】java异常机制剖析
一.为什么要使用异常 首先我们可以明确一点就是异常的处理机制可以确保我们程序的健壮性,提高系统可用率.虽然我们不是特别喜欢看到它,但是我们不能不承认它的地位,作用.有异常就说明程序存在问题,有助于我们 ...