狠狠撸

狠狠撸Share a Scribd company logo
Chapter 3
  JavaScript 初探
—— 程序员与设计师的双重眼光
什么是我们需要的?
      基于 js 的 Lightbox 插件可以点击图片后弹出覆盖层进行浏览




去试试
什么是我们需要的?




    照片的倒影效果和阴影效果
什么是我们需要的?




      实现网页上绘制 3d 图形




去试试
成为 Web 专家


            头脑风暴:
            Web 开发者 / 浏览器厂
            商
            如何实现动态?
成为 Web 专家
JavaScript 简史
? 突破 HyperText :网景和 Sun 公司联合推
  出 JavaScript

? 欧洲计算机制造商协会标准化:
  ECMAscript

? W3C 使 DOM 标准化,解决浏览器间冲突
JavaScript 简史
? DOM: 一个与系统平台和编程语言无关的
  接口,程序脚本可以通过这个接口动态地访
  问和修改文档内容、结构和样式。

? 标准化 DOM 语法:
  var xpos =
 document.getElementById('myelement').style.left

              ?getElementById
              ?getElementByTagName
              ?getElementByClassName
准备工作
<!DOCTYPE html >             <!DOCTYPE html>
<html lang="en">             <html lang="en">
<head>                       <head>
   <meta charset="utf-8"/>      <meta charset="utf-8"/>
   <title>Example</title>       <title>Example</title>
   <script>                  </head>
         JavaScript          <body>
   </script>                    Content
</head>                         <script src=/slideshow/web-3-javascript/12765182/"file.js"></script>
                             </body>
<body>                       </html>
   Content
</body>
</html>

  javascript 嵌入 HTML 文档中      javascript 有单独的 .js 文档
准备工作
<!DOCTYPE html >
<html lang="en">
<head>
  <meta charset="utf-8"/>    JavaScript 版 Hello World
  <title>Example</title>     复制左边的代码到 EmEditor
  <script>                   保存为 html 文件后查看效果
       alert("Hello World!
  ");
  </script>
</head>

<body>
  <p>Content</p>
</body>
</html>
没有傻问题

<script> 标签是否一定要包含 type="text/javascript" 属性?

    答:不一定, HTML 脚本默认类型就是 javascript

                                    javascript 代码放在最后
可以在 <head> 中包含 js 文件吗?              会被延迟执行吗         去试试

    答:可以,但是最好的做法是把 <script> 标签放在 HTML 文档的最后,
    </body> 标签之前。


javascript 语言需要编译才能执行吗?

    答: javascript 是解释型语言,他需要浏览器中的解释器读入源码并执行。
JavaScript 语法
语句
first statement;
second statement;

注释
// 普通注释
/* 多行的
                          <!— 、— !> 颜色为什么不一样?
      注释 */
<!— — JavaScript 的 HTML 风格注释,不推荐 — —
  !>
JavaScript 语法
变量
var mood = "happy";



var mood; mood = "happy";

数据类型
弱类型:程序员可以在任何阶段改变变量的数据类型
JavaScript 语法
数组
var beatles = Array(4);
beatles[0] = "John";
beatles[1] = "Paul";
beatles[2] = "George";
beatles[3] = "Ringo";

var beatles = Array( "John", "Paul",
  "George", "Ringo" );
JavaScript 语法
关联数组
var lennon = Array();
lennon["name"] = "John";
lennon["year"] = 1940;
lennon["living"] = false;



          使用关联数组增加了代码可读性,
          实质上是创建了 Array 对象的属性
JavaScript 语法
对象
var lennon = Object();
lennon.name = "John";
lennon.year = 1940;
lennon.living = false;

拼接操作
var year = 2005;
var message = "The year is " + year;
JavaScript 语法
拼接操作

去试试:
比较 alert ("10" + 20);
和  alert (10 + 20);
的执行结果
JavaScript 语法
条件语句
if (1 > 2) {
alert("The world has gone mad!");
} else {
alert("All is well with the world");
}
JavaScript 语法
循环语句
var count = 1;
do {
alert (count);
count++;
} while (count < 11);

var beatles = Array("John","Paul","George","Ringo");
for (var count = 0 ; count < beatles.length; count+
  + ) {
      alert(beatles[count]);
  }
JavaScript 语法
var beatles =
  Array("John","Paul","George",
  "Ringo");
for (var count = 0 ; count <
  beatles.length; count++ ) {
       alert(beatles[count]);
  }
                                   上下两部分语句
                                   执行结构有何不同?
var beatles =
   Array("John","Paul","George",
   "Ringo");

  alert(beatles);
JavaScript 语法
函数
function shout() {
var beatles =
  Array("John","Paul","George","Ringo"
  );
for (var count = 0 ; count <
  beatles.length; count++ ) {
     alert(beatles[count]);
     }
}
JavaScript 语法
对象
Person.mood
Person.walk

JS 内建对象
     var beatles = new Array();
宿主对象
     浏览器、主机等运行环境决定(如
  document )
DOM
? Document Object Model
DOM
? 节点:
 – 元素节点
 – 文本节点
 – 属性节点


? CSS
    回顾……   美化示例 2
DOM
? ID 获取元素
                      typeof 报告所选择的对象类型


alert(typeof
  document.getElementById("purchases")
  );

在 index.html 中选择 ID 为 purchases 的元素
P.S. 把上面的语句加入到代码中
去试试
DOM
? tag 获取元素
                      typeof 报告所选择的对象类型

var items =
  document.getElementsByTagName("li");
for (var i=0; i < items.length; i++) {
alert(typeof items[i]);
}

在 index.html 中选择 ID 为 purchases 的元素
去试试
DOM
? class 获取元素

var shopping =
  document.getElementById("purchases")
  ;
var sales =
  shopping.getElementsByClassName("sal
  e");
DOM
? 获取和设置属性
通过刚才的 getElementBy... ,获取了的元素
  可以使用
      getAttribute
      setAttribute
  来获取和设置元素的属性
DOM
getAttribute

var paras = document.getElementsByTagName("p");
for (var i=0; i< paras.length; i++) {
  var title_text = paras[i].getAttribute("title");
  if (title_text != null) {
      alert(title_text);
  }
}

如果获得的 title 属性非空,则弹出 alert 对话框
DOM
setAttribute

var shopping = document.getElementById("purchases");
alert(shopping.getAttribute("title"));
shopping.setAttribute("title","a list of goods");
alert(shopping.getAttribute("title"));




P.S. 把上面的语句加入到示例 2 代码中
DOM

setAttribute 改变了元素的属性!




                     ???
                     这样的话 HTML 文档是否被修改了?
小结
? JavaScript 是实现动态效果的一种途径

? 松散语法规则让你可以专注于效果本身

? DOM 可以使页面内容与 JavaScript 交互


       示例:简单实现图片轮播功能

More Related Content

What's hot (19)

颁蝉蝉性能优化
颁蝉蝉性能优化颁蝉蝉性能优化
颁蝉蝉性能优化
linxz
?
布局原理
布局原理布局原理
布局原理
enmaai
?
惭测产补迟颈蝉学习培训
惭测产补迟颈蝉学习培训惭测产补迟颈蝉学习培训
惭测产补迟颈蝉学习培训
flynofry
?
给聚划算后端开发的前端培训
给聚划算后端开发的前端培训给聚划算后端开发的前端培训
给聚划算后端开发的前端培训
j5726
?
Html5form
Html5formHtml5form
Html5form
jay li
?
淘宝网前端开发面试题
淘宝网前端开发面试题 淘宝网前端开发面试题
淘宝网前端开发面试题
Lumend
?
网页叁本柱之贬迟尘濒与肠蝉蝉
网页叁本柱之贬迟尘濒与肠蝉蝉网页叁本柱之贬迟尘濒与肠蝉蝉
网页叁本柱之贬迟尘濒与肠蝉蝉
Aaron King
?
Kindeditor 设计思路
Kindeditor 设计思路Kindeditor 设计思路
Kindeditor 设计思路
luolonghao
?
编辑器设计Kissy editor
编辑器设计Kissy editor编辑器设计Kissy editor
编辑器设计Kissy editor
taobao.com
?
CSS 入門 - 前端工程開發實務訓練
CSS 入門 - 前端工程開發實務訓練CSS 入門 - 前端工程開發實務訓練
CSS 入門 - 前端工程開發實務訓練
Joseph Chiang
?
AJAX Basic
AJAX BasicAJAX Basic
AJAX Basic
Ryan Chung
?
Node js feat pegasus
Node js feat pegasusNode js feat pegasus
Node js feat pegasus
cnfi
?
第叁方内容开发最佳实践
第叁方内容开发最佳实践第叁方内容开发最佳实践
第叁方内容开发最佳实践
taobao.com
?
前端 JavaScript 相关的小Tips
前端 JavaScript 相关的小Tips前端 JavaScript 相关的小Tips
前端 JavaScript 相关的小Tips
blank zheng
?
JavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization SkillsJavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization Skills
Ho Kim
?
TypeScript-twmvc#16
TypeScript-twmvc#16TypeScript-twmvc#16
TypeScript-twmvc#16
twMVC
?
HTML 入門 - 前端工程開發實務訓練
HTML 入門 - 前端工程開發實務訓練HTML 入門 - 前端工程開發實務訓練
HTML 入門 - 前端工程開發實務訓練
Joseph Chiang
?
Javascript primer plus
Javascript primer plusJavascript primer plus
Javascript primer plus
Dongxu Yao
?
KISSY for starter
KISSY for starterKISSY for starter
KISSY for starter
yiming he
?
颁蝉蝉性能优化
颁蝉蝉性能优化颁蝉蝉性能优化
颁蝉蝉性能优化
linxz
?
布局原理
布局原理布局原理
布局原理
enmaai
?
惭测产补迟颈蝉学习培训
惭测产补迟颈蝉学习培训惭测产补迟颈蝉学习培训
惭测产补迟颈蝉学习培训
flynofry
?
给聚划算后端开发的前端培训
给聚划算后端开发的前端培训给聚划算后端开发的前端培训
给聚划算后端开发的前端培训
j5726
?
Html5form
Html5formHtml5form
Html5form
jay li
?
淘宝网前端开发面试题
淘宝网前端开发面试题 淘宝网前端开发面试题
淘宝网前端开发面试题
Lumend
?
网页叁本柱之贬迟尘濒与肠蝉蝉
网页叁本柱之贬迟尘濒与肠蝉蝉网页叁本柱之贬迟尘濒与肠蝉蝉
网页叁本柱之贬迟尘濒与肠蝉蝉
Aaron King
?
Kindeditor 设计思路
Kindeditor 设计思路Kindeditor 设计思路
Kindeditor 设计思路
luolonghao
?
编辑器设计Kissy editor
编辑器设计Kissy editor编辑器设计Kissy editor
编辑器设计Kissy editor
taobao.com
?
CSS 入門 - 前端工程開發實務訓練
CSS 入門 - 前端工程開發實務訓練CSS 入門 - 前端工程開發實務訓練
CSS 入門 - 前端工程開發實務訓練
Joseph Chiang
?
Node js feat pegasus
Node js feat pegasusNode js feat pegasus
Node js feat pegasus
cnfi
?
第叁方内容开发最佳实践
第叁方内容开发最佳实践第叁方内容开发最佳实践
第叁方内容开发最佳实践
taobao.com
?
前端 JavaScript 相关的小Tips
前端 JavaScript 相关的小Tips前端 JavaScript 相关的小Tips
前端 JavaScript 相关的小Tips
blank zheng
?
JavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization SkillsJavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization Skills
Ho Kim
?
TypeScript-twmvc#16
TypeScript-twmvc#16TypeScript-twmvc#16
TypeScript-twmvc#16
twMVC
?
HTML 入門 - 前端工程開發實務訓練
HTML 入門 - 前端工程開發實務訓練HTML 入門 - 前端工程開發實務訓練
HTML 入門 - 前端工程開發實務訓練
Joseph Chiang
?
Javascript primer plus
Javascript primer plusJavascript primer plus
Javascript primer plus
Dongxu Yao
?
KISSY for starter
KISSY for starterKISSY for starter
KISSY for starter
yiming he
?

Viewers also liked (20)

PresCare Annual Report 2012-13
PresCare Annual Report 2012-13PresCare Annual Report 2012-13
PresCare Annual Report 2012-13
James Woods
?
Women-and-Men-Morality-and-Ethics
Women-and-Men-Morality-and-EthicsWomen-and-Men-Morality-and-Ethics
Women-and-Men-Morality-and-Ethics
Mut Somoeun
?
T3tra andres blancoT3tra andres blanco
T3tra andres blanco
Andres Blanco
?
How I started 3d printing and what I use it for
How I started 3d printing and what I  use it forHow I started 3d printing and what I  use it for
How I started 3d printing and what I use it for
Willem Van den Eynde
?
DiapositivasDiapositivas
Diapositivas
sanchesmenjivark
?
First grade ocean research
First grade ocean researchFirst grade ocean research
First grade ocean research
Mari McCuen
?
Actualog для Ленэнерго
Actualog для ЛенэнергоActualog для Ленэнерго
Actualog для Ленэнерго
Actualog
?
European legal issues for US enterprise
European legal issues for US enterpriseEuropean legal issues for US enterprise
European legal issues for US enterprise
Rob Blamires
?
Afectación a viviendaAfectación a vivienda
Afectación a vivienda
Marcela Tranchini
?
CliqTags - Access Methods for Mobile Marketing
CliqTags - Access Methods for Mobile MarketingCliqTags - Access Methods for Mobile Marketing
CliqTags - Access Methods for Mobile Marketing
CliqTags
?
SSS Sanatracin RTU MSDS
SSS Sanatracin RTU MSDSSSS Sanatracin RTU MSDS
SSS Sanatracin RTU MSDS
esalozzo
?
Feb 2010 Newsletter
Feb 2010 NewsletterFeb 2010 Newsletter
Feb 2010 Newsletter
mjcunny
?
GSPOA World Health Summit Workshop, Usman
GSPOA World Health Summit Workshop, UsmanGSPOA World Health Summit Workshop, Usman
GSPOA World Health Summit Workshop, Usman
Usman Mushtaq
?
Program gemilang 7 (1)
Program gemilang 7 (1)Program gemilang 7 (1)
Program gemilang 7 (1)
Butter Emily
?
Rock AlternativoRock Alternativo
Rock Alternativo
Pablo Andrés Martinez
?
Practia de laboratorio origen del universoPractia de laboratorio origen del universo
Practia de laboratorio origen del universo
joshman valarezo
?
J groll ignite the culture cocktail party 0613
J groll ignite the culture cocktail party 0613J groll ignite the culture cocktail party 0613
J groll ignite the culture cocktail party 0613
jgroll06
?
Poverty - G1
Poverty - G1Poverty - G1
Poverty - G1
Bernard Sng
?
The blink Style
The blink StyleThe blink Style
The blink Style
Daniel Ruke
?
Packet tracer dhPacket tracer dh
Packet tracer dh
felix eduardo urquijo bayona
?
PresCare Annual Report 2012-13
PresCare Annual Report 2012-13PresCare Annual Report 2012-13
PresCare Annual Report 2012-13
James Woods
?
Women-and-Men-Morality-and-Ethics
Women-and-Men-Morality-and-EthicsWomen-and-Men-Morality-and-Ethics
Women-and-Men-Morality-and-Ethics
Mut Somoeun
?
T3tra andres blancoT3tra andres blanco
T3tra andres blanco
Andres Blanco
?
How I started 3d printing and what I use it for
How I started 3d printing and what I  use it forHow I started 3d printing and what I  use it for
How I started 3d printing and what I use it for
Willem Van den Eynde
?
DiapositivasDiapositivas
Diapositivas
sanchesmenjivark
?
First grade ocean research
First grade ocean researchFirst grade ocean research
First grade ocean research
Mari McCuen
?
Actualog для Ленэнерго
Actualog для ЛенэнергоActualog для Ленэнерго
Actualog для Ленэнерго
Actualog
?
European legal issues for US enterprise
European legal issues for US enterpriseEuropean legal issues for US enterprise
European legal issues for US enterprise
Rob Blamires
?
Afectación a viviendaAfectación a vivienda
Afectación a vivienda
Marcela Tranchini
?
CliqTags - Access Methods for Mobile Marketing
CliqTags - Access Methods for Mobile MarketingCliqTags - Access Methods for Mobile Marketing
CliqTags - Access Methods for Mobile Marketing
CliqTags
?
SSS Sanatracin RTU MSDS
SSS Sanatracin RTU MSDSSSS Sanatracin RTU MSDS
SSS Sanatracin RTU MSDS
esalozzo
?
Feb 2010 Newsletter
Feb 2010 NewsletterFeb 2010 Newsletter
Feb 2010 Newsletter
mjcunny
?
GSPOA World Health Summit Workshop, Usman
GSPOA World Health Summit Workshop, UsmanGSPOA World Health Summit Workshop, Usman
GSPOA World Health Summit Workshop, Usman
Usman Mushtaq
?
Program gemilang 7 (1)
Program gemilang 7 (1)Program gemilang 7 (1)
Program gemilang 7 (1)
Butter Emily
?
Rock AlternativoRock Alternativo
Rock Alternativo
Pablo Andrés Martinez
?
Practia de laboratorio origen del universoPractia de laboratorio origen del universo
Practia de laboratorio origen del universo
joshman valarezo
?
J groll ignite the culture cocktail party 0613
J groll ignite the culture cocktail party 0613J groll ignite the culture cocktail party 0613
J groll ignite the culture cocktail party 0613
jgroll06
?

Similar to Web设计 3 java_script初探(程序员与设计师的双重眼光) (20)

Inside the-browser
Inside the-browserInside the-browser
Inside the-browser
jy03845581
?
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
Chieh Lin
?
[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am i
Twinsen Liang
?
J Query Learn
J Query LearnJ Query Learn
J Query Learn
guestfb42fc
?
Script with engine
Script with engineScript with engine
Script with engine
Webrebuild
?
富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用
luolonghao
?
前端开发学习介绍
前端开发学习介绍前端开发学习介绍
前端开发学习介绍
peterju
?
深入剖析浏览器
深入剖析浏览器深入剖析浏览器
深入剖析浏览器
jay li
?
JavaScript Advanced Skill
JavaScript Advanced SkillJavaScript Advanced Skill
JavaScript Advanced Skill
firestoke
?
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染
Ailsa126
?
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 review
leneli
?
网页制作基础
网页制作基础网页制作基础
网页制作基础
loo2k
?
追风堂 Javascript
追风堂 Javascript追风堂 Javascript
追风堂 Javascript
minipeach
?
恶意网页分析实战
恶意网页分析实战恶意网页分析实战
恶意网页分析实战
Huang Toby
?
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
zhangsuoyong
?
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
jay li
?
奥别产前端标准在各浏览器中的实现差异
奥别产前端标准在各浏览器中的实现差异奥别产前端标准在各浏览器中的实现差异
奥别产前端标准在各浏览器中的实现差异
cleverpig
?
Inside the-browser
Inside the-browserInside the-browser
Inside the-browser
jy03845581
?
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
Chieh Lin
?
[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am i
Twinsen Liang
?
Script with engine
Script with engineScript with engine
Script with engine
Webrebuild
?
富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用
luolonghao
?
前端开发学习介绍
前端开发学习介绍前端开发学习介绍
前端开发学习介绍
peterju
?
深入剖析浏览器
深入剖析浏览器深入剖析浏览器
深入剖析浏览器
jay li
?
JavaScript Advanced Skill
JavaScript Advanced SkillJavaScript Advanced Skill
JavaScript Advanced Skill
firestoke
?
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染
Ailsa126
?
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 review
leneli
?
网页制作基础
网页制作基础网页制作基础
网页制作基础
loo2k
?
追风堂 Javascript
追风堂 Javascript追风堂 Javascript
追风堂 Javascript
minipeach
?
恶意网页分析实战
恶意网页分析实战恶意网页分析实战
恶意网页分析实战
Huang Toby
?
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
zhangsuoyong
?
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
jay li
?
奥别产前端标准在各浏览器中的实现差异
奥别产前端标准在各浏览器中的实现差异奥别产前端标准在各浏览器中的实现差异
奥别产前端标准在各浏览器中的实现差异
cleverpig
?

Web设计 3 java_script初探(程序员与设计师的双重眼光)

  • 1. Chapter 3 JavaScript 初探 —— 程序员与设计师的双重眼光
  • 2. 什么是我们需要的? 基于 js 的 Lightbox 插件可以点击图片后弹出覆盖层进行浏览 去试试
  • 3. 什么是我们需要的? 照片的倒影效果和阴影效果
  • 4. 什么是我们需要的? 实现网页上绘制 3d 图形 去试试
  • 5. 成为 Web 专家 头脑风暴: Web 开发者 / 浏览器厂 商 如何实现动态?
  • 7. JavaScript 简史 ? 突破 HyperText :网景和 Sun 公司联合推 出 JavaScript ? 欧洲计算机制造商协会标准化: ECMAscript ? W3C 使 DOM 标准化,解决浏览器间冲突
  • 8. JavaScript 简史 ? DOM: 一个与系统平台和编程语言无关的 接口,程序脚本可以通过这个接口动态地访 问和修改文档内容、结构和样式。 ? 标准化 DOM 语法: var xpos = document.getElementById('myelement').style.left ?getElementById ?getElementByTagName ?getElementByClassName
  • 9. 准备工作 <!DOCTYPE html > <!DOCTYPE html> <html lang="en"> <html lang="en"> <head> <head> <meta charset="utf-8"/> <meta charset="utf-8"/> <title>Example</title> <title>Example</title> <script> </head> JavaScript <body> </script> Content </head> <script src=/slideshow/web-3-javascript/12765182/"file.js"></script> </body> <body> </html> Content </body> </html> javascript 嵌入 HTML 文档中 javascript 有单独的 .js 文档
  • 10. 准备工作 <!DOCTYPE html > <html lang="en"> <head> <meta charset="utf-8"/> JavaScript 版 Hello World <title>Example</title> 复制左边的代码到 EmEditor <script> 保存为 html 文件后查看效果 alert("Hello World! "); </script> </head> <body> <p>Content</p> </body> </html>
  • 11. 没有傻问题 <script> 标签是否一定要包含 type="text/javascript" 属性? 答:不一定, HTML 脚本默认类型就是 javascript javascript 代码放在最后 可以在 <head> 中包含 js 文件吗? 会被延迟执行吗 去试试 答:可以,但是最好的做法是把 <script> 标签放在 HTML 文档的最后, </body> 标签之前。 javascript 语言需要编译才能执行吗? 答: javascript 是解释型语言,他需要浏览器中的解释器读入源码并执行。
  • 12. JavaScript 语法 语句 first statement; second statement; 注释 // 普通注释 /* 多行的 <!— 、— !> 颜色为什么不一样? 注释 */ <!— — JavaScript 的 HTML 风格注释,不推荐 — — !>
  • 13. JavaScript 语法 变量 var mood = "happy"; var mood; mood = "happy"; 数据类型 弱类型:程序员可以在任何阶段改变变量的数据类型
  • 14. JavaScript 语法 数组 var beatles = Array(4); beatles[0] = "John"; beatles[1] = "Paul"; beatles[2] = "George"; beatles[3] = "Ringo"; var beatles = Array( "John", "Paul", "George", "Ringo" );
  • 15. JavaScript 语法 关联数组 var lennon = Array(); lennon["name"] = "John"; lennon["year"] = 1940; lennon["living"] = false; 使用关联数组增加了代码可读性, 实质上是创建了 Array 对象的属性
  • 16. JavaScript 语法 对象 var lennon = Object(); lennon.name = "John"; lennon.year = 1940; lennon.living = false; 拼接操作 var year = 2005; var message = "The year is " + year;
  • 17. JavaScript 语法 拼接操作 去试试: 比较 alert ("10" + 20); 和 alert (10 + 20); 的执行结果
  • 18. JavaScript 语法 条件语句 if (1 > 2) { alert("The world has gone mad!"); } else { alert("All is well with the world"); }
  • 19. JavaScript 语法 循环语句 var count = 1; do { alert (count); count++; } while (count < 11); var beatles = Array("John","Paul","George","Ringo"); for (var count = 0 ; count < beatles.length; count+ + ) { alert(beatles[count]); }
  • 20. JavaScript 语法 var beatles = Array("John","Paul","George", "Ringo"); for (var count = 0 ; count < beatles.length; count++ ) { alert(beatles[count]); } 上下两部分语句 执行结构有何不同? var beatles = Array("John","Paul","George", "Ringo"); alert(beatles);
  • 21. JavaScript 语法 函数 function shout() { var beatles = Array("John","Paul","George","Ringo" ); for (var count = 0 ; count < beatles.length; count++ ) { alert(beatles[count]); } }
  • 22. JavaScript 语法 对象 Person.mood Person.walk JS 内建对象 var beatles = new Array(); 宿主对象 浏览器、主机等运行环境决定(如 document )
  • 24. DOM ? 节点: – 元素节点 – 文本节点 – 属性节点 ? CSS 回顾…… 美化示例 2
  • 25. DOM ? ID 获取元素 typeof 报告所选择的对象类型 alert(typeof document.getElementById("purchases") ); 在 index.html 中选择 ID 为 purchases 的元素 P.S. 把上面的语句加入到代码中 去试试
  • 26. DOM ? tag 获取元素 typeof 报告所选择的对象类型 var items = document.getElementsByTagName("li"); for (var i=0; i < items.length; i++) { alert(typeof items[i]); } 在 index.html 中选择 ID 为 purchases 的元素 去试试
  • 27. DOM ? class 获取元素 var shopping = document.getElementById("purchases") ; var sales = shopping.getElementsByClassName("sal e");
  • 28. DOM ? 获取和设置属性 通过刚才的 getElementBy... ,获取了的元素 可以使用 getAttribute setAttribute 来获取和设置元素的属性
  • 29. DOM getAttribute var paras = document.getElementsByTagName("p"); for (var i=0; i< paras.length; i++) { var title_text = paras[i].getAttribute("title"); if (title_text != null) { alert(title_text); } } 如果获得的 title 属性非空,则弹出 alert 对话框
  • 30. DOM setAttribute var shopping = document.getElementById("purchases"); alert(shopping.getAttribute("title")); shopping.setAttribute("title","a list of goods"); alert(shopping.getAttribute("title")); P.S. 把上面的语句加入到示例 2 代码中
  • 31. DOM setAttribute 改变了元素的属性! ??? 这样的话 HTML 文档是否被修改了?
  • 32. 小结 ? JavaScript 是实现动态效果的一种途径 ? 松散语法规则让你可以专注于效果本身 ? DOM 可以使页面内容与 JavaScript 交互 示例:简单实现图片轮播功能