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 ...
随机推荐
- Gradle 笔记——Java构建入门
Gradle是一个通用的构建工具,通过它的构建脚本你可以构建任何你想要实现的东西,不过前提是你需要先写好构建脚本的代码.而大部分的项目,它们的构建流程基本是一样的,我们不必为每一个工程都编写它的构建代 ...
- 固定宽高的DIV绝对居中示例
看了一些代码,然后自己试验了一番,分享如下示例: 实现点: 如果元素的宽高固定,那么,css指定样式为top:50%;left:50%; 而margin-top和 margin-left 指定为负数, ...
- pig的limit无效(返回所有记录)sample有效
pig中,limit可以取样少部分数据,但有很多问题,比如数据不能少于10条,否则返回全部. 今天又遇到另一个问题: group后的数据,limit无效:也就是group后的数据,不能用limit,估 ...
- SecureCRT设置linux终端显示颜色
在linux系统上,我们使用终端时,对于文件或目录会显示不同的颜色.而SecureCRT默认显示的颜色是单一的,我们该如何让其像linux一样显示个性化颜色呢. 使用SecureCRT登录 linux ...
- mixer: 一个用go实现的mysql proxy
介绍 mixer是一个用go实现的mysql proxy,支持基本的mysql代理功能. mysql的中间件很多,对于市面上面现有的功能强大的proxy,我主要考察了如下几个: mysql-proxy ...
- MinerQueue.java 访问队列
MinerQueue.java 访问队列 package com.iteye.injavawetrust.miner; import java.util.HashSet; import java.ut ...
- 不错的东西: AutoMapper
详细信息可阅读原文:http://csharppulse.blogspot.in/2013/08/crud-operations-using-automapper-in-c_381.html 这东西可 ...
- ThreadLocal深入理解 修订版
本文是传智博客多线程视频的学习笔记. 原版本见 http://blog.csdn.net/dlf123321/article/details/42531979 ThreadLocal是一个和线程安全相 ...
- Mondrian Schema workbench工作界面 简介(实在懒得写,居然有人弄了,收藏了)
转自:http://hi.baidu.com/dinguangx/item/37e78be29aebc1adcf2d4f89 Schema Schema 定义了一个多维数据库.包含了一个逻辑模型,而这 ...
- "《算法导论》之‘线性表’":基于数组实现的单链表
对于单链表,我们大多时候会用指针来实现(可参考基于指针实现的单链表).现在我们就来看看怎么用数组来实现单链表. 1. 定义单链表中结点的数据结构 typedef int ElementType; cl ...