第九章 最后的补充

一、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. 20165318 2017-2018-2 《Java程序设计》第三周学习总结

    20165318 2017-2018-2 <Java程序设计>第三周学习总结 学习总结 我感觉从这一章开始,新的知识点扑面而来,很多定义都是之前没有接触过的,看书的时候难免有些晦涩.但由于 ...

  2. javascript:typeof与instanceof区别

    from:http://www.wxwdesign.cn/article/skills/javascript_typeof_instanceof.htm JavaScript中typeof和insta ...

  3. 正则表达式利用grep和sed处理日志内容,获取所需的内容

    app.log文件内容: 2014-09-11 00:00:01,516 INFO [com.tt.bb.thread.Control] - Socket连接:/182.105.83.33:53217 ...

  4. R函数-时间序列ETS参数说明

    alpha\beta\gamma分别代表水平.趋势.季节分量的平滑参数α.β.γ.这三个参数我们希望接近于0,以便于更平滑,即越小越平滑.在乘法模型的情况下,参数需要非常低,否则模型会对噪声太敏感. ...

  5. Service 服务发现的两种方式-通过案例来理解+服务外部访问类型+selector-label

    1.环境变量 在创建一个Pod时,kubelet在该Pod的所有容器中为当前所有Service添加一系列环境变量. 例如,已存在名称为“redis-master”的Service,它对外暴露6379的 ...

  6. linux文件系统初始化过程(6)---执行init程序

    一.目的 内核加载完initrd文件后,为挂载磁盘文件系统做好了必要的准备工作,包括挂载了sysfs.proc文件系统,加载了磁盘驱动程序驱动程序等.接下来,内核跳转到用户空间的init程序,由ini ...

  7. CSS+JQuery实现Tabs效果,点击更改背景色(不含图片)

    1,Html代码 <body> <div id="box"> <ul id="tab_nav"> <li class= ...

  8. Linux学习笔记(第六章)

    第六章-档案权限与目录配置#chgrp:改变档案的所属群组#chown:改变档案的拥有者#chmod:改变档案的权限及属性 chown用法 chmod用法: r:4 w:2 x:1对于文档: 对于目录 ...

  9. Bootstrap02

    Bootstrap02_内容概述 一.排版样式  (下面示例*代表class) 1.段落突出 *=lead <p>山外有山,<span class="lead"& ...

  10. Docker:unauthorized: incorrect username or password.

    用VS2017编译DockerCompose项目,显示错误:unauthorized: incorrect username or password. 打开命令行工具,输入docker login命令 ...