javaScript入门1--组成,基本使用
javaScript:脚本语言,最初是为了实现在客户端进行的表单验证以减少服务器的数据交互次数,如今可用在页面交互,计算,拥有了闭包,匿名(拉姆达)函数,甚至元编程等特性。
javaScript实现的组成:
1.核心(ECMAScript)--TC39负责完成的新脚本的语言标准。
2.文档对象模型(DOM)--针对XML但经过扩展用于HTML的API,DOM把整个页面为一个多层节点结构。
3.浏览器对象模型(BOM)--控制浏览器显示页面以外的部分。BOM无标准遵循。
javaScript的基本使用:
向html页面插入javaScript的方法即使用<script>标签,<script>标签的6大属型如下
| async | 可选,表示应该立即下载该脚本,但不妨碍页面的其他操作。只对外部脚本有效 |
| charset | 可选,通过src指定字符集,由于大多数用户代理会忽略这个值,所以基本不用这个属性 |
| defer | 可选,表示脚本需要等到文档完全被解析和显示之后再执行,只对外部脚本有效 |
| language | 已废弃 |
| src | 可选,指定外部文件的路径 |
| type | 可选,类似language,表示编写代码使用的脚本语言的内容类型(MIME),默认为text/javascript |
一个简单的示例
<script type="text/javascript">
function re(){
alert("hello javascript");
}
</script>
script标签内的js代码会被自上向下的解释,如上,解释器会解释一个函数的定义,然后将该定义保存在自己的环境中,在解释器对<script>标签内的所有代码求值完毕以前,页面中的其余部分不会被浏览器加载或者显示。
*script标签在结束前不能出现</sciprt>,但是可以使用转义字符<\/script>来实现。
外部js,对使用src属性的script标签,不允许在其中嵌入js代码,如果这样,则嵌入的代码会被忽略,只运行src加载的外部js。
对于外部js,只要没有async,defer属性,则js在按照页面中出现的先后顺序顺序解析,就是第一个js解析完成后,再解析第二个。
标签的位置
传统做法:放在html的head元素中,这样的做法意味着浏览器必须等到所有的js代码下载,解析,执行后才能呈现页面的内容(浏览器遇到body标签才开始呈现内容),这将会导致页面在js为准备完毕前处于空白状态,没有良好的用户体验。
为了避免上述问题,现在一般将script放在</body>之前,页面内容之后。
再回到上面讲的defer属性,当defer的值为defer时,即为一个延迟脚本,顾名思义,该脚本会立即被下载,但延迟到浏览器遇到</html>时才被解析和执行,当存在多个延迟脚本时,文档中的延迟脚本按照出现的先后顺序解析与执行,但这些脚本会先与DOMContentLoaded事件执行。
现在来说异步脚本,async="async",异步,即在下载该脚本的同时,不用影响其他操作,如下载其他脚本,但是对于多个异步脚本,并非像defet一样按照顺序执行,另外对于异步脚本,最好不要加载其间修改DOM,异步一定会在页面的load事件之前执行,但可能会在DOMContentLoaded事件触发之前或者之后执行。
混杂模式:也叫怪异模式,即在WEB发展的早期,各浏览器厂商比较封闭,使用自己的体系,毫无兼容性可言,此时的网站多为混杂模式,当标准推行之后,便出现了标准模式。
<noscript>标签,实现不支持javascript的浏览器的平稳退化,其出现位置是作为body的相邻兄弟元素,在<script>标签之前闭合。
javaScript入门1--组成,基本使用的更多相关文章
- JavaScript入门篇 编程练习
编程挑战 一.定义"改变颜色"的函数 提示: obj.style.color obj.style.backgroundColor 二.定义"改变宽高"的函数 提 ...
- JavaScript入门
本篇内容是学习慕课网相关课程后,总结出可能未来会忘记的内容 (一)JavaScript入门操作 1.js代码插入位置,以及执行顺序 <head> <script type=" ...
- 慕课网JavaScript入门篇课程笔记
1.js注释很重要 单行注释,在注释内容前加符号 “//”. <script type="text/javascript"> document.write(" ...
- JavaScript入门基础
JavaScript基本语法 1.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=).算术运 ...
- JavaScript入门介绍(二)
JavaScript入门介绍 [函数] 函数function 是Javascript的基础模块单元,用于代码的复用.信息影藏和组合调用. function a(){} 函数对象Function Lit ...
- JavaScript入门介绍(一)
JavaScript入门介绍 [经常使用的调试工具][w3school.com.cn在线编辑] [Chrome浏览器 开发调试工具]按F121.代码后台输出调试:console.log("t ...
- 开心菜鸟系列----函数作用域(javascript入门篇)
1 <!DOCTYPE html> 2 <html> 3 <script src="./jquery-1.7.2.js"></ ...
- 开心菜鸟系列----变量的解读(javascript入门篇)
console.info( console.info(window['weiwu']) console.info(window. ...
- javascript入门视频第一天 小案例制作 零基础开始学习javascript
JavaScript 是我们网页设计师必备的技能之一.我们主要用javascript来写的是网页特效.我们从零基础开始学习javascript入门. 但是,好的同学刚开始不知道怎么学习,接触js,因此 ...
- ArcGIS API for JavaScript 入门教程[0] 目录
随时翻看. 转载注明出处,博客园/CSDN/B站:秋意正寒. Part 1 必看 ArcGIS API for JavaScript 入门教程[1] 渊源 你还真不一定知道这是啥.非得学吗? ArcG ...
随机推荐
- Spark中的编程模型
1. Spark中的基本概念 Application:基于Spark的用户程序,包含了一个driver program和集群中多个executor. Driver Program:运行Applicat ...
- HDU ACM 1496 Equations
Equations Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- TCMalloc优化MySQL、Nginx、Redis内存管理
TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多.TCMalloc是 goo ...
- 【转】 Nginx系列(一)--nginx是什么?
原博文出于:http://blog.csdn.net/liutengteng130/article/details/46700939 感谢! 一.介绍 Nginx是一个高性能的HTTP和反向代理服务 ...
- linux下编译lua
curl -R -O http://www.lua.org/ftp/lua-5.2.3.tar.gz 编译代码时,遇到如下错误 /usr/lib/libreadline.so: undefined r ...
- HDU 5656 CA Loves GCD (数论DP)
CA Loves GCD 题目链接: http://acm.hust.edu.cn/vjudge/contest/123316#problem/B Description CA is a fine c ...
- HDU 5510 Bazinga (2015沈阳现场赛,子串判断)
Bazinga Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- HDU 1796How many integers can you find(简单容斥定理)
How many integers can you find Time Limit: 12000/5000 MS (Java/Others) Memory Limit: 65536/32768 ...
- matlab eps中文乱码的解决方法
直接存成eps总是乱码 最优解决方法是matlab print 保存成jpg,之后用adobe acrobat pro 打开jpg文件另存为eps
- java获取照片相关属性
package test; import java.io.File; import java.util.Iterator; import com.drew.imaging.jpeg.JpegMetad ...