JavaScript 问答 - No.1
1 什么是JavaScript?
JavaScript 是世界上最流行的脚本语言。
JavaScript 是属于 web 的语言,它适用于 PC、笔记本电脑、平板电脑和移动电话。
JavaScript 被设计为向 HTML 页面增加交互性。
许多 HTML 开发者都不是程序员,但是 JavaScript 却拥有非常简单的语法。几乎每个人都有能力将小的 JavaScript 片段添加到网页中。
1995 年,Netscape (网景) 公司,为了是解决页面验证总是需要提交到服务器端的问题,引入了JavaScript.
JavaScript 是一种简单却又复杂,轻量级但是很强大的,容易上手却又难以掌握的语言。-- 说人话就是,很好很强大,很黄很暴力!
2 JavaScript 和 Java 是什么关系?
除了名字里都有一个Java 外,没有一毛钱的关系。
JavaScript 之前在NetScape 公司称之为LiveScript, 在1995年,Netscape Navigator 2 发布时,为了迎合当时风骚独领,如日中天的 Java 编程语言,名字改为 JavaScript.
三十年河东,三十年河西呀!现在 JavaScript 的风头已经盖过了 Java.
忽然想到了,青梅煮酒论英雄?当年 Java 对 JavaScript 说,问天下英雄唯JavaScript与Java 耳。如今看来,方知古人诚不欺也!
3 什么是DOM?
DOM—Document Object Model –文档对象模型, DOM 是W3C 的标准,定义了访问HTML 和 XML 文档的标准。
HTML DOM 定义了访问和操作 HTML 文档的标准方法。
DOM 以树结构表达 HTML 文档。
4 如何在HTML 文件中引入 JavaScript?
<script> 标签。
|
属性 |
HTML5 新增? |
必须 |
值 |
描述 |
可以忽略的话 |
|
type |
否 |
是 |
text/javascript |
指示脚本的 MIME 类型。 |
MIME (Multipurpose Internet Mail Extensions) 多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
|
|
async |
是 |
否 |
async |
规定异步执行脚本,仅适用于外部脚本 |
async 不保证脚本按顺序执行。 加载和渲染后续文档元素的过程将和 |
|
defer |
否 |
否 |
defer |
规定是否对脚本执行进行延迟,直到页面加载为止。 |
defer 指定了脚本不能改变页面结构,所以脚本才能够在整个页面解析后执行。 有 defer,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但是 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成。 |
|
src |
否 |
否 |
URL |
规定外部脚本文件的 URL |
|
|
charset |
否 |
否 |
charset |
规定在外部脚本文件中使用的字符编码 |
Unicode,ANSIII |
5 在<head> 与</body> 之前引用脚本的区别?
|
位置 |
代码 |
解析 |
|
<head> 中 |
<head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script type="text/javascript"> alert(document.getElementsByTagName("li").length); </script> <title>purchase list</title> </head> <body> <h1>What to buy</h1> <ul id="purchases"> <li> beans</li> <li>Cheese</li> </ul> </body> 结果:0 |
<head> 中的<script> 在页面开始展现之前(页面展现开始与浏览器到达<body>标签)被下载,解析,编译。 |
|
</body> 之前 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Shopping list</title> </head> <body> <h1>What to buy</h1> <ul id="purchases"> <li>Cheese</li> <li>Milk</li> <script type="text/javascript"> alert(document.getElementsByTagName("li").length); </script> </ul> </body> 结果:2 |
使用这种方式,在JavaScript脚本页面已经被浏览器展现出来。 |
<script> 放在<body></body> 中,</body>之前提高了用户体验,从上表可以看出,如果放在<head></head> 中的script 很大很多会使得浏览器再没有解析完脚本之前一片空白,而用户通常是没有耐心的,所以把脚本放在</body> 之前提高了用户体验。
相反CSS 相关的文件却要放在 <head> 中,因为我们希望展现给用户一个美观的界面。
这就好像一个男人绝对不会因为女人化妆耽误了一点时间而发脾气一样,他们希望看到美女!
废话:
如果说页面是一个女生,那么 HTML 说表示的内容就是她的身材,相貌,三围等先天条件,这从根本上决定了网页的是女神还是女汉子—在这个以貌取人的年代,没什么比这个更重要了!
CSS 就是化妆品,首饰,衣服,鞋子,最重要的它是 Photoshop, 它可以化腐朽为神奇,让凤姐变成林志玲。
JavaScript 是内在气质,品格,待人接物的方式。
6 如何检测浏览支持JavaScript?
<noscript>
<noscript> <p>This page requires a JavaScript-enabled browser.</p> </noscript>
JavaScript 问答 - No.1的更多相关文章
- 如何正确学习JavaScript
不要这样学习JavaScript 不要一开始就埋头在成堆的JavaScript在线教程里 ,这是最糟糕的学习方法.或许在看过无数个教程后会有点成效,但这样不分层次结构地学习一个东西实在是十分低效,在实 ...
- 「译」如何正确学习JavaScript
原文:How to Learn JavaScript Properly 目录 不要这样学习JavaScript 本课程资源 1-2周(简介,数据类型,表达式和操作符) 3~4周(对象,数组,函数,DO ...
- [转]如何正确学习JavaScript
原文:How to Learn JavaScript Properly(2014-2-7) 学习时长:6-8周 学习前提:中学水平,无需编程经验 更新(2014-1-7) 在Reddit上创建了一个学 ...
- javascript学习路线图
史上最全的javascript学习路线图 JavaSctipt学习路线 完成整个课程大纲需要花上6~8周的时间,将学会完整的JavaScript语言(包括jQuery和一些HTML5).如果你没有时间 ...
- 学习javascript,您将发现以下两个学习指南
学习javascript,您将发现以下两个学习指南,一个是初学者的,另一个是茄子一号经验丰富的程序员和Web开发人员的.你想学习javascript并对它有兴趣.我想这就是你来这里的原因,你做了一个明 ...
- js--学习方法之-转
既然你找到这篇文章来,说明你是真心想学好JavaScript的.你没有想错,当今如果要开发现代网站或web应用(包括互联网创业),都要学会JavaScript.而面对泛滥的JavaScript在线学习 ...
- 那些在GitHub能提高你的编程技能的项目
1.免费的编程书籍 免费的开发手册 167K Repo:github.com/EbookFoundation/free-programming.. 2. 很棒的话题 包含了各种有趣的话题 148k R ...
- Javascript高级程序设计-问答模式
1.谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制 sort的实现的功能类似JAVA的比较器,数据排序从多维数组的第一维开始排序可以自己定义排序方法 ...
- Ext JS - 问答
Ext JS - 问答 在下面你将可以找到关于Ext JS 的最常见问题的答复.如果没有找到您所需的答复,请访问 Ext JS 论坛或者提交一个支持申请. 如果你确信你的问题可以对本页有补充,请让我们 ...
随机推荐
- Red and Black(poj 1979 bfs)
Red and Black Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 27891 Accepted: 15142 D ...
- OSA-MAC: A MAC Protocol for Opportunistic Spectrum Access in Cognitive Radio Networks
This full text paper was peer reviewed at the direction of IEEE Communications Society subject matte ...
- java学习之Java中JDK,JRE和JVM之间的关系(转载)
最近要重新抓一下java,大量扫技术文档,保存下来供自己查阅.以下转载自http://www.cnblogs.com/xiaofeixiang/p/4085159.html 初学JAVA很容易被其中的 ...
- GDB+GDBServer调试Linux应用程序
参考:http://blog.csdn.net/shanghaiqianlun/article/details/7820401 一.gdb+gdbserver总体介绍 远程调试环境由宿主机GDB和目标 ...
- 通过项目逐步深入了解Mybatis<四>
延迟加载 什么是延迟加载? resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. ...
- UGUI Button控件
今天一起来学习下Button控件, Button控件其实是由Text,Button,Image组件形成的. 这里就简单介绍下Button组件 Interactable: 代表该组件是否进行交互, 我们 ...
- Android学习总结——SQLite
SQLiteDatabase类: 一.使用sql语句操作数据库 SQLiteDatabase db = openOrCreateDatabase("database.db", MO ...
- C++编程规范和标准总结
文件名: 每个源代码文件应该有一个包含文件.每个包含文件描述了单个类或者多个类相结合的集合.一般头文件(.h,或.hpp)包含类的定义而不是实例.因此包含文件可以用在多个文件当中,源文件(.c,.或c ...
- 细说php(三) 运算符与表达式
一.算术运算符 + - * / % ++ -- <?php $a = 100; $a++; // $a=$a+1; 先用变量再自增1 ++$a; // $a=$a+1; 先用 ...
- 【中途相遇+二进制】【NEERC 2003】Jurassic Remains
例题25 侏罗纪(Jurassic Remains, NEERC 2003, LA 2965) 给定n个大写字母组成的字符串.选择尽量多的串,使得每个大写字母都能出现偶数次. [输入格式] 输入包含 ...