第九章 最后的补充

一、Jquery简单阐述

JQuery是一个JavaScript库,旨在减少和简化处理DOM和添加视觉效果的JavaScript代码;使用时必须得添加库路径;学习路径:http://jquery.com/

例1:

window.onload=function(){ alert("the page is loaded!"); }

Jqery:

 $(document).ready(function(){                //在网页加载完调用的函数

 alert("the page is loaded!");

 });

进一步简化:

 $(function(){

 alert("the page is loaded!");

 });

例2:id为buynow的元素添加单击事件

 $(function(){

 $("$buynow").click(function(){

 alert("I want to buy now!");

 });

 });

//要给网页所有a元素添加单击事件就将上述     buynow改成a  即可

二、补充的DOM获取元素的方法

document.getElementsByClassName      //返回一个NodeList其中包含所有class指定的元素

document.getElementsByName              //返回name特性的所有元素

document.querySelector                          //将一个选择器作为参数并返回匹配的第一个元素

document.querySelectorAll                      //选择器为参数,返回NodeList所有元素

如:var li=document.querySelector ("#playlist  .song");//先查id为playlist元素再查找第一个class特性为song的元素

三、补充对象window的属性方法

window.innerWidth //浏览器宽度  单位px

window.innerHeight //浏览器高度  单位px

window.close();      //关闭浏览器窗口

window.print();      //使用打印机打印网页

window.confirm();      //提供Okand Cancle

window.history;      //浏览器历史记录

window.location;      //当前网页的URl,可以设置加载新的网页

四、arguments

在每个函数中都有一个名为arguments的对象可供使用;以数组形式返回函数的所有参数

 <script>

 function printArgs(){

 for(var i=0;i<arguments.length;i++){

 console.log(arguments[i]);

 }

 }

 printArgs("one",1,1+5,"five");

 </script>

五、处理异常

网页控制器窗口可以报错,也可以使用try/catch

 <!doctype html>

 <html lang="en">

 <head>

 <meta charset="utf-8">

 <title>Show dogs</title>

 <script>

  window.onload=function(){

 try{

 var message=document.getElementById("messge");

 message.innerHTML="Here's the message!";

 }catch(error){

 console.log("Erroe! "+error.messsge);

 }

 };

 </script>

 </head>

 <body>

 <div id="message"></div>

 </body>

 </html>

六、addEventListener添加事件处理程序

给一个事件添加多个处理程序,使用方法addEventListener

例:

 <!doctype html>

 <html lang="en">

 <head>

 <meta charset="utf-8">

 <title>clickme</title>

 <script>

 window.onload=function(){

 var div=document.getElementById("clickme");

 if(div.addEventListener){//如果浏览器支持该方法

 div.addEventListener("click",handleClick,false);

 //参数:事件名称,程序名称,是否向上传递的标志

 }else if(div.attachEvent){//浏览器不支持addaddEventListener换方法

 div.attachEvent("onclick",hanleClick);//参数稍有不同且以onclick代click

 }

 };

 function handleClick(){

 var evt=window.event;//浏览器是否支持e

 var target;

 if(evt.target){//检查浏览器是否支持

 target=evt.target;

 }else{

 target=evt.srcElement;

 }

 alert("You Clicked on "+target.id);

 }

 </script>

 </head>

 <body>

 <div id="clickme">dianwo</div>

 </body>

 </html>

七、递归

 <script>

 function fibonacci(n){

 if(n==0||n==1){

 return 1;

 }else{

 return (fibonacci(n-1)+fibonacci(n-2));

 }

 }

 for(var i=0;i<10;i++){

 console.log("The fibonacci of "+i+" is "+fibonacci(i));

 }

 </script>

八、JSON

JavaScript不仅是一种Web编程语言,还正在逐渐成为一种常用的对象存储和传输格式,JSON是JavaScript Object Notation的缩写;

例1

 var fidoString='{"name":"Fido","breed":"Mixed","weight":38}';//单引号为JSON语句,即对象字符串

 var fido=JSON.parse(fidoString);//将字符串转换为对象

例2:

 var fido={

 name:Fido,

 breed:"Mixed",

 weight:38

 };

 var fidoString=JSON.stringify(fido);//将对象转换成字符串

九 、服务器端JavaScript

Node.js是当前流行的一种JavaScript服务器端技术,包含自己的运行环境和库。也是单线程;

学习路径:http://node.js.org/

十、正则表达式

“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。

“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。

“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。

\s:用于匹配单个空格符,包括tab键和换行符;

\S:用于匹配除单个空格符之外的所有字符;

\d:用于匹配从0到9的数字;

\w:用于匹配字母,数字或下划线字符;

\W:用于匹配所有与\w不匹配的字符;

. :用于匹配除换行符之外的所有字符。

“^”定位符规定匹配模式必须出现在目标字符串的开头

“$”定位符规定匹配模式必须出现在目标对象的结尾

“\b”定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个

“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,

即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。

/[A-Z]/上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。

/[a-z]/上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。

/[0-9]/ 上述正则表达式将会与从0到9范围内任何一个数字相匹配。

/([a-z][A-Z][0-9])+/上述正则表达式将会与任何由字母和数字组成的字符串,如 “aB0” 等相匹配。

{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。

{n,} n 是一个非负整数。至少匹配 n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。

{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。

优先级如下:

1. 1.\ 转义符

2. 2.(), (?, (?=), [] 圆括号和方括号

3. 3.*, +, ?, {n}, {n,}, {n,m} 限定符

4. 4.^, $, \anymetacharacter 位置和顺序

5. 5.|“或”操作

JavaScript 1.2中带有一个功能强大的RegExp()对象,可以用来进行正则表达式的匹配操作。其中的test()方法可以检验目标对象中是否包含匹配模式,并相应的返回true或false。

例:

 var email = obj.email.value;  

 var pattern =  

 /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;  

 flag = pattern.test(email);  

 if(flag)  

 {  

 alert(“Your email address is correct!”);  

 return true;  

 }  

例:

1 在字符串中执行查找

exec 方法:exec(String source)

例如:

 function isDigit(s){

 var reg = /^[0-9]{1,20}$/;

 var result = reg.exec(s);

 //如果格式正确,返回原字符串,否则返回null

 alert(result);

 }

2 在字符串中执行查找

match 方法:match(reg)

例如:

 function matchDemo(source){

 var reg = /^[a-z]/;

 var result = source.match(reg);

 alert(result);

 }

//注意与exec的区别

3 执行模式判定

test 方法:Boolean test(source)

例如:

 function isDigit(s){

 var reg = /^[0-9]{1,20}$/;

 var flag = reg.test(s);

 //如果格式正确,返回true,否则返回false

 if(flag){

 return true;

 }else{

 return false;

 }

 }

4 执行字符串位置查询

search 方法:int search(String reg)

例如:

 function seachString(){

 var r, re; // 声明变量

 var s = "The rain in Spain falls mainly in the plain.";

 re = /falls/; // 创建正则表达式模式

 r = s.search(re); // 查找字符串

 alert(r); // 返回 int 结果表示出现位置

 }

5 执行字符串分割

split 方法:String[ ] split(String reg)

例如:

 function splitString( ){

 var r, reg; // 声明变量

 reg = /abc/; // 创建正则表达式模式

 var s = “IcansaymyabcIcansaymyabcIcan…";

 r = s.split(reg); // 分割字符串

 for(var p in r){    // 返回 String 数组

 alert(r[p]);

 }

 }

JavaScript学习笔记(八)—— 补的更多相关文章

  1. JavaScript学习笔记八

    本文依据慕课网课程<JavaScript进阶>学习整理 第8章 浏览器对象 8-1 window对象   window对象是BOM的核心.window对象指当前的浏览器窗体.   wind ...

  2. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  3. Java程序猿的JavaScript学习笔记(汇总文件夹)

    最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...

  4. Java程序猿的JavaScript学习笔记(8——jQuery选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  5. Java程序猿JavaScript学习笔记(2——复制和继承财产)

    计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...

  6. Java程序猿的JavaScript学习笔记(3——this/call/apply)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  7. Java程序猿JavaScript学习笔记(4——关闭/getter/setter)

    计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...

  8. Java程序猿JavaScript学习笔记(14——扩大jQuery UI)

    计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...

  9. Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

  10. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

随机推荐

  1. Java虚拟机18:Java对象大小、对象内存布局及锁状态变化

    一个对象占多少字节? 关于对象的大小,对于C/C++来说,都是有sizeof函数可以直接获取的,但是Java似乎没有这样的方法.不过还好,在JDK1.5之后引入了Instrumentation类,这个 ...

  2. 在Ubuntu Desktop中安装软件

    1. 安装好虚拟机后,可以先打开firefox,看是否可以访问外部的网页. 2. 如果在公司内网,可能访问不起,需要添加代理,确保可以访问外部的网页. 3. 更新软件源 sudo apt update ...

  3. Java多线程和并发基础面试总结

    多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题.收藏起来,希望给予即将找 ...

  4. iPhone X进入DFU模式

    下面把iphoneX进dfu模式的方法分享给大家.在开机状态下,按一下音量加键后松开,然后按一下音量减键后松开,接着按住电源键,屏幕完全熄灭后,松开电源键,接着同时按住电源键和音量减,保持5秒左右,再 ...

  5. 下拉控件jQuery插件

    由于后端开发需要一个下拉控件,能输入,能选择,于是自己写了一个 ;(function($,window,document,undefined){ function Select(el,opt){ th ...

  6. docker常用命令(一)

    1. docker命令 docker images //查看本地镜像 docker rmi 镜像名称:标签名称 //删除一个镜像 docker rm 容器ID //删除一个容器 docker comm ...

  7. Servlet 处理请求

    一:Servlet 处理请求也是通过request来进行处理,类似于python. get请求通过request.getparameter("key");key为前端传过来的key ...

  8. 《数据结构算法分析C描述》引论:选择问题,字谜游戏问题

    #include <stdio.h> #include <stdlib.h> // 第一题 // 找出N个数的第k个最大者 // 方法1:排序(冒泡),降序找出第k个值 // ...

  9. Apache Shiro(一)-登录认证和权限管理初识

    What is Apache Shiro? Apache Shiro是一个功能强大.灵活的,开源的安全框架.它可以干净利落地处理身份验证.授权.企业会话管理和加密. Apache Shiro的首要目标 ...

  10. React-Native使用极光进行消息推送

    推送作为APP几乎必备的功能,不论是什么产品都免不了需要消息推送功能,一般做RN开发的可能都是前端出身(比如我),关于android ios 都不是很懂