JavaScript权威指南(第六版)--JavaScript概述 DEMO
//所有在双斜线之后的内容都属于注释
//仔细阅读这里的注释:它们对JavaScript代码做了解释
//变量是表示值的一个符号名字
//变量是通过var关键字声明的
var x; //声明一个变量x
//值可以通过等号赋值给变量
x=0; //现在变量x的值为0
x // =>0:通过变量获取其值
// JavaScript支持多种数据类型
x=1; //数字
x=0.01; //整数和实数共用一种数据类型
x="hello world"; //由双引号内的文本构成的字符串
x='JavaScript'; //单引号内的文本同样构成字符串
x=true; //布尔值
x=false; //另一个布尔值
x=null; //null是一个特殊的值,意思是"空"
x=undefined; //undefined和null非常类似
//JavaScript中的最重要的类型就是对象
//对象是名/值对的集合,或字符串到值映射的集合
var book ={ //对象是由花括号括起来的
topic:"JavaScript"; //属性"topic"的值是"JavaScript"
fat:true //属性"fat"的值是true
}; //右花括号标记了对象的结束
//通过"."或"[]"来访问对象属性
book.topic //=>"JavaScript"
book["fat"] //=>true:另外一种获取属性的方式
book.author="Flanagan"; //通过赋值创建一个新属性
book.contents={} //{}是一个空对象,它没有属性
//JavaScript同样支持数组(以数字为索引的列表)
var primes=[2,3,5,7]; //拥有4个值的数组,由"["和"]"划定边界
primes[0] //=>2:数组中的第一个元素(索引为0)
primes.length //=>4:数组中的元素个数
primes[primes.length-1] //=>7:数组的最后一个元素
primes[4]=9; //通过赋值来添加新元素
primes[4]=11; //或通过赋值来改变已有的元素
var empty=[]; //[]是空数组,它具有0个元素
empty.length //=>0
//数组和对象中都可以包含另一个数组或对象
var points=[ //具有两个元素的数组
{x:0,y:0}, //每个元素都是一个对象
{x:1,y:1}
];
var data={ //一个包含两个属性的对象
trial1:[[1,2],[3,4]], //每一个属性都是数组
trial2:[[2,3],[4,5]] //数组的元素也是数组
};
//运算符作用于操作数,生成一个新的值
//最常见的是算术运算符
3+2 //=>5:加法
3-2 //=>1:减法
3*2 //=>6:乘法
3/2 //=>1.5:除法
points[1].x-points[0].x //=>1:更复杂的操作数也能照常工作
"3"+"2" //=>"32":+可以完成加法运算也可以做字符串连接
//JavaScript定义了一些算术运算符的简写形式
var count=0; //定义一个变量
count++; //自增1
count--; //自减1
count +=2; //自增2:和"count=count+2;"写法一样
count *=3; //自乘3:和"count=count*3;"写法一样
count //=>6:变量名本身也是一个表达式
//相等关系运算符用来判断两值是否相等
//不等、大于、小于运算符的运算结果是true或false
var x=2,y=3; //这里的=等号是赋值的意思,不是比较相等
x==y //=>false:相等
x!=y //=>true:不等
x<y //=>true:小于
x<=y //=>true:小于等于
x>y //=>false:大于
x>=y //=>false:大于等于
"two"=="three" //=>false:两个字符串不相等
"two">"three" //=>true:"tw"在字母表中的索引大于"th"
false==(x>y) //=>true:false和false相等
//逻辑运算符是对布尔值的合并或求反
(x==2)&&(y==3) //=>true:两个比较都是true,&&表示"与"
(x>3)||(y<3) //=>false:两个比较不都是true,||表示"或"
!(x==y) //=>true:求反
//函数是一段带有参数的JavaScript代码端,可以多次调用
function plus1(x){ //定义了名为plus1的一个函数,带有参数x
return x=1; //返回一个比传入的参数大的值
} //函数的代码块是由花括号包裹起来的部分
plus1(y) //=>4:y为3,调用函数的结果为3+1
var square=function(x){ //函数是一种值,可以赋值给变量
return x*x; //计算函数的值
}; //分号标识了赋值语句的结束
square(plus1(y)) //=>16:在一个表达式中调用两个函数
//当函数赋值给对象的属性,我们称为
//"方法",所有的JavaScript对象都含有方法
var a=[]; //创建一个空数组
a.push(1,2,3); //push()方法向数组中添加元素
a.reverse(); //另一个方法:将数组元素的次序反转
//我们也可以定义自己的方法,"this"关键字是对定义方法
//的对象的引用:这里的例子是上文中提到的包含两个点位置信息的数组
points.dist=function(){ //定义一个方法用来计算两点之间的距离
var p1=this[0]; //通过this获得对当前数组的引用
var p2=this[1]; //并取得调用的数组前两个元素
var a=p2.x-p1.x; //X坐标轴上的距离
var b=p2.y-p1.y; //Y坐标轴上的距离
return Math.sqrt(a*a //勾股定理
+ b*b); //用Math.sqrt()来计算平方根
};
points.dist() //=>1.414:求得两个点之间的距离
//这些JavaScript语句使用该语法包含条件判断和循环
//使用了类似C、C++、Java和其他语言的语法
function abs(x){ //求绝对值的函数
if(x>=0){ //if语句...
return x; //如果比较结果为true则执行这里的代码
} //子句的结束
else{ //当if条件不满足时执行else子句
return -x;
} //如果分支中只有一条语句,花括号是可以省略的
} //注意if/else中嵌套的return 语句
function factorial(n){ //计算阶乘的函数
var product=1; //给product赋值为1
while(n>1){ //当()内的表达式为true时循环执行{}内的代码
product*=n; //"product=product*n;"的简写形式
n--; //"n=n-1;"的简写形式
} //循环结束
return product; //返回product
}
factorial(4) //=>24:1*4*3*2
function factorial2(n){ //实现循环的另一种写法
var i,product=1; //给product赋值为1
for(i=2;i<=n;i++) //将i从2自增至n
product*=i; //循环体,当循环体中只有一句代码,可以省略{}
return product; //返回计算好的阶乘
}
factorial2(5) //=>120:1*2*3*4*5
//定义一个构造函数以初始化一个新的Point对象
function Point(x,y){ //按照惯例,构造函数以大写字母开始
this.x=x; //关键字this指代初始化的实例
this.y=y; //将函数参数存储为对象的属性
} //不需要return
//使用new关键字和构造函数来创建一个实例
var p=new Point(1,1); //平面几何中的点(1,1)
//通过给构造函数的prototye对象赋值
//来给Point对象定义方法
Point.prototype.r=function(){
return Math.sqrt( //返回平方根
this.x*this.x //this指代调用这个方法的对象
+this.y*this.y);
};
//Point的实例对象p(以及所有的Point实例对象)继承了方法r()
p.r() //=>1.414...
<script>
function moveon(){
//通过弹出一个对话框来询问用户一个问题
var answer = confirm("Are you ready?");
//单机“确定”按钮,浏览器会加载一个新页面
if(answer) window.location="http://taobao.com";
}
//在一分钟后执行定义的这个函数
setTimeout(moveon,60*1000)
</script>
//在document中的一个指定的区域输出调试信息
//如果document不存在这样一个区域,则创建一个
function debug(msg){
//通过查看HTML元素id属性来查找文档的调试部分
var log = document.getElementById("debuglog");
//如果这个元素不存在,则创建一个
if(!log){
log = document.createElement("div"); //创建一个新的div元素
log.id = "debuglog"; //给这个元素的HTML id赋值
log.innerHTML = "<h1>Debug Log</h1>"; //定义初始内容
document.body.appendChild(log); //将其添加到文档的末尾
}
//将消息包装在<pre>中,并添加至log中
var pre = document.createElement("pre"); //创建<pre>标签
var text = document.createTextNode(msg); //将msg包装在一个文本节点中
pre.appendChild(text); //将文本添加至<pre>
log.appendChild(pre); //将<pre>添加至log
}
function hide(e,reflow){ //通过JavaScript操纵样式来隐藏元素e
if(reflow){ //如果第二个参数是true
e.style.display = "none" //隐藏这个元素,其所占的空间也随之消失
}
else{ //否则
e.style.visibility = "hidden"; //将e隐藏,但是保留其所占的空间
}
}
function highlight(e){ //通过设置CSS类来高亮显示e
//简单地定义或追加HTML类属性
//这里假设CSS样式表中已经有"hilite"类的定义
if(!e.className) e.className = "hilite";
else e.className +="hilite";
}
//"load"事件只有在文档加载完成后才会触发
//通常需要等待load事件发生后才开始执行JavaScript代码
window.onload = function(){ //当文档加载完成时执行这里的代码
//找到文档中所有的<img>标签
var images = document.getElementsByTagName("img");
//遍历images,给每个节点的"click"事件添加事件处理程序
//在点击图片的时候将图片隐藏
for(var i=0;i<images.length;i++){
var image = images[i];
if(image.addEventListener) //注册事件处理程序的另一种方法
image.addEventListener("click",hide,false);
else //兼容IE8以前版本
image.attachEvent("onclick",hide);
}
//这便是上面注册的事件处理函数
function hide(event){event.target.style.visibility = "hidden";}
};
JavaScript权威指南(第六版)--JavaScript概述 DEMO的更多相关文章
- 《JavaScript权威指南 第六版 中文版》(一)
<JavaScript权威指南 第六版 中文版> 第二章 词法结构 2.1字符集 JavaScript是使用Unicode字符集编码写的. 2.1.1区分大小写 JavaScript是区分 ...
- [在读] javascript权威指南第六版
耽搁了有大半年没看,记得当时看到5分之2了吧.权威指南是不管读几遍都能觉得有新收获的书^^
- Note | Javascript权威指南[第六版] 第1章:Javascript概述
JavaScript是一门高端的.动态的.弱类型的编程语言,非常适合面向对象和函数式的编程风格.JavaScript的语法源自Java,它的一等函数(first-class function)来 ...
- JS 语言核心(JavaScript权威指南第六版)(阅读笔记)
前言: 对于程序员,学习是无止境的,知识淘换非常快,能够快速稳固掌握一门新技术,是一个程序员应该具备的素质.这里将分享本人一点点不成熟的心得. 了解一门语言,了解它的概念非常重要,但是一些优秀的设计思 ...
- JavaScript权威指南第六版(阅读笔记)
前言: 对于软件行业学习是无止境的,因为知识更替非常快,能够快速稳固掌握一门新技术是一个程序员应该具备的基本素质. 了解一门语言,了解它的概念非常重要,但是一些优秀的设计思想需要细心和大量实践才能慢慢 ...
- javascript权威指南第六版学习
第二章 语法结构 2.1 字符集 什么是字符集?各种字符集什么关系?unicode,utf-8是什么关系? 字符(Character)是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等 ...
- Note | javascript权威指南[第六版] 第2章:词法结构
语法结构规定了诸如变量名是什么样的.怎么写注释,以及程序语句之间如何分隔等规则.本章用很短的篇幅来介绍JavaScript的词法结构. 2.1.字符集 JavaScript程序是用Unic ...
- 第六章 对象-javaScript权威指南第六版
什么是对象? 对象是一种复合值,每一个属性都是都是一个名/值对.原型式继承是javaScript的核心特征. 对象常见的用法有,create\set\query\delete\test\enumera ...
- 【读书笔记--cookie】JavaScript权威指南 第六版
遇到一些问题需要用cookie处理,正好读了一下犀牛书关于cookie的介绍,整理了一些笔记. cookie是指web浏览器存储的少量数据,同时它是与具体的web页面或者站点相关的. cookie数据 ...
- 第六章 对象-javaScript权威指南第六版(三)
6.3 删除内容 delete运算符可以删除对象的属性. delete运算符只能删除自有属性,不能删除继承属性. delete表达式删除成功或没有任何副作用时,它返回true. 6.4 检测属性 用i ...
随机推荐
- alpha发布用户数
小组名称:天天向上 小组成员:张政.张金生.林莉.胡丽娜 项目内容:连连看 在连连看alpha发布的24小时内,我们将连连看安装包放入各个组员所加入的QQ群内,推荐朋友试玩,用户数达到9人. 现在有A ...
- POI设置边框
在做一个电子表格时,边框的设置有时是必不可少的.这一节就来介绍边框,设置时,可以指定边框的位置,边框的种类,边框的顔色. 首先是边框的位置和种类.对单元格设置边框时,有上下左右位置之分,所以POI也准 ...
- HRBUST 1430 矩阵快速幂
没错就是这道模板题我做了一个小时...我居然在看第一眼就认为是快速幂的情况下强行找了一发瞬时求出的规律 每个阶段有黑白两种 a[i].black=a[i-1].black*3+a[i].white ...
- sortedArrayUsingComparator
/* 升序.降序 */ NSArray * array41 = @[@,@,@,@,@,@,@]; NSArray * array42 = [[NSArray alloc]init]; array42 ...
- Windows上python开发--2安装django框架
Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...
- Linux常用命令-入门
linux 开源安全性高 linux 和 windows 1.同时登陆多用户 2.安全 3.linux没有盘符的概念 /. / root 根目录 4.linux的文件没有扩展名 ...
- Delphi Application.MessageBox详解
引数:1. Text:要显示的讯息2. Caption:讯息视窗的标题列文字3. Flags:讯息旗标 3.1. 可指定讯息视窗上的图示 3.2. 可指定讯息视窗出现的按钮 3 ...
- svn update 失败 且 clean up失败解决方法
当出现这种情况时,大多数是因为svn的数据库还有队列没处理完.而我们要做到仅仅是把队列清除即刻. 具体做法是: 1.下载sqlite3.exe下载地址:sqlite官网http://www.sqlit ...
- Android Gradle 编译错误Java finished with non-zero exit value 2
出现这个错误主要有两类错误 依赖包重复 方法数超过65K 针对第一种错误,可能是由于build.gradle里写了 compile fileTree(dir: 'libs', include: ['* ...
- random circle
<!doctype html><meta charset="utf-8"><html><head><title>D3 t ...