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 论坛或者提交一个支持申请. 如果你确信你的问题可以对本页有补充,请让我们 ...
随机推荐
- 蜘蛛牌(hdu 1584 DFS)
蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- STM32之------独立看门狗(IWDG)和窗体看门狗(WWDG)
一 前沿废语: 之前有很风靡的游戏,名字叫<看门狗>.该游戏用了很新的引擎技术,打造出了一个辽阔庞大的世界,内容是玩家Aiden·Pearce(主角)是一名精通黑客技术的高手,当时 ...
- Effective Java实作类别 - 就是爱Java
定义好了Interface之后,现在我们开始来实作类别:Role,建立一个class,implements Role,将3个属性及clone()实作出来,单纯的getter与setter,可以利用ID ...
- POI3.10 根据Excel模版导出数据测试
1:所需jar包 2:Mysql数据库表内容如下: 3:代码结构如下: (1)User.java public class User { private int id; private String ...
- perl 爬取数据<1>
use LWP::UserAgent; use POSIX; use DBI; $user="root"; $passwd="11111111"; $dbh=& ...
- MySql 取一天的开始时间和结束时间
-- 取一开的开始时间 SELECT str_to_date(DATE_FORMAT(NOW(),'%Y-%m-%d'),'%Y-%m-%d %H:%i:%s'); -- 取第二天的开始时间 sele ...
- django 启动和请求
Django运行方式 调试模式 直接 python manage.py runserver python manage.py runserver python manage.py runserver ...
- ubuntu14.04下arm-linux-gcc 4.5.1的安装与配置
使用的是友善之臂mini6410自带光盘中的. 1.对新版本arm-linux-gcc-5.4.1进行解压(注意,下面的C是大写的) tar zxvf arm-linux-gcc-4.5.1-v6-v ...
- AliCTF 2016
上上周参加了阿里的CTF,靠着最后绝杀队伍有幸拿到了国内第一名,也顺利进入了XCTF Final.把自己做的几个题简单写了下,发出来也算个总结吧. PWN-FB 经典的null byte overfl ...
- hibernate某些版本(4.3)下报错 NoSuchMethodError: javax.persistence.Table.indexes()
其实本来没啥大问题,但到网上查的时候发现了一些误人子弟的说法,所以还是记下来吧. 现象: hibernate从低版本升级到某一个版本时(我们是升到4.3.10)时,在程序启动时会报错: java.la ...