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 ...
随机推荐
- 【uWSGI】 listen queue of socket (fd: 3) 错误分析
现在django的应用基本都是使用uWSGI来部署,类似下面 listen queue of socket "127.0.0.1:9001" (fd: 3) 的错误出现过2次,下面 ...
- Cocos2d中update与fixedUpdate的区别(三)
没错!现在的情况是很糟糕.因为玩家不会看到平滑的动作. 不管怎样,我们都对此无能为力.玩家期待在1秒后小球出现在位置(8),所以我们应该把球放在那里. 我们不会讨论如何避免掉帧的情况.对于这个例子我们 ...
- Xshell Linux 主要命令
1. 查看当前路径 pwd 2.列出当前目录的文件 ls 列出所有文件或者文件夹 ls *abc 列出以abc开头的所以文件 ls –l 列出所以文件及其详细详细 3.进入目录 cd ...
- apache 负载测试工具 ab
1.ab工具是apache自带的工具,可以测试服务器的负载能力 2.ab工具的参数 -v:版本 -c:并发数 -n:请求数 -t: 测试所进行的最大秒数 3.例子:ab -c 100 -n 100 - ...
- Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Oracle ADF 开发必读
MARK:http://www.oracle.com/technetwork/cn/articles/adf/index-086064-zhs.html 第 1 部分- 借助 Subversion 进 ...
- 【Android 应用开发】Android应用的自动更新模块
. 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 软件的自动更新一般都与Splash界 ...
- "《算法导论》之‘栈’":栈的三种实现(静态数组、动态数组及指针)
本文有关栈的介绍部分参考自网站数据结构. 1. 栈 1.1 栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表. (1)通常称插入.删除的这一端为栈顶(Top),另一端称为栈底( ...
- Android网络请求框架之Retrofit实践
网络访问框架经过了从使用最原始的AsyncTask构建简单的网络访问框架(甚至不能称为框架),后来使用开源的android-async-http库,再到使用google发布的volley库,一直不懈的 ...
- vs2010 matlab混合编程调用matlab引擎
// matlab_engine.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "engine.h" ...