JavaScript学习笔记(八)—— 补
第九章 最后的补充
一、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学习笔记(八)—— 补的更多相关文章
- JavaScript学习笔记八
本文依据慕课网课程<JavaScript进阶>学习整理 第8章 浏览器对象 8-1 window对象 window对象是BOM的核心.window对象指当前的浏览器窗体. wind ...
- javascript学习笔记(四) Number 数字类型
数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数 toExponential() 方法 用科学 ...
- Java程序猿的JavaScript学习笔记(汇总文件夹)
最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...
- Java程序猿的JavaScript学习笔记(8——jQuery选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(2——复制和继承财产)
计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...
- Java程序猿的JavaScript学习笔记(3——this/call/apply)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(4——关闭/getter/setter)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- Java程序猿JavaScript学习笔记(14——扩大jQuery UI)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...
- JavaScript学习笔记之数组(二)
JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...
随机推荐
- SICP 习题 (1.34)解题总结
SICP 习题 1.34的题目比較特别一点.对于没有接触过高阶函数的同学们来说是个非常好的学习机会. 题目是这种,假设我们定义以下的过程: (define (f g) (g 2)) 那么就有: ( ...
- P3565 [POI2014]HOT-Hotels
题目描述 There are nn towns in Byteotia, connected with only n-1n−1 roads. Each road directly links two ...
- chrome的uget扩展程序红色 Unable to connect with uget-integrator问题
我们根据网上的教程在ubuntu16.04中安装下载工具uget+aria2并配置chrome时,最后重新打开chrome浏览器,发现uget扩展程序是红色的,点开看到”Unable to conne ...
- Java基础加强之并发(四)synchronized关键字
并发系列参考文章http://www.cnblogs.com/skywang12345/p/3323085.html#3907193 synchronized原理 在java中,每一个对象有且仅有一个 ...
- sql排序方法
SQL Server中使用order by charindex按指定顺序排序 在使用SQL Server数据库编程中,有时需要对取出来的数据按照指定的顺序排序,例如,取出来的数据某个字段值有张三.李四 ...
- 集合之Iterator
迭代对于我们搞Java的来说绝对不陌生.我们常常使用JDK提供的迭代接口进行Java集合的迭代. Iterator iterator = list.iterator(); while(iterator ...
- VC++获取当前路径及程序名的实现代码
VC上或取当前路径有多种方法,最常用的是使用 GetCurrentDirectory和GetModuleFileName函数,个中都有诸多注意事项,特别总结一下 一.获取当前运行目录的绝对路径 1.使 ...
- c++——const关键字
1 const基础知识(用法.含义.好处) int main() { const int a; int const b; const int *c; int * const d; const int ...
- 【题解】洛谷P1070 道路游戏(线性DP)
次元传送门:洛谷P1070 思路 一开始以为要用什么玄学优化 没想到O3就可以过了 我们只需要设f[i]为到时间i时的最多金币 需要倒着推回去 即当前值可以从某个点来 那么状态转移方程为: f[i]= ...
- [图解tensorflow源码] Session::Run() 分布式版本