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 ...
随机推荐
- EasyMock(官方资料整理)
1.要求 EasyMock要求java1.5.0及以上版本. Objenesis (2.0+)必须在classpath中来执行class mocking. 2.使用Maven 在Maven中心库中可以 ...
- CodeForces 682C Alyona and the Tree (树+dfs)
Alyona and the Tree 题目链接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/C Description Alyona ...
- 使用friso中文分词注意
friso是使用c语言开发的一款中文分词器,使用流行的mmseg算法实现.完全基于模块化设计和实现,可以很方便的植入到其他程序中,例如:MySQL,PHP等.目前只支持UTF-8 编码. 源码无需修改 ...
- js即时监听文本内容
<script type="text/javascript"> //其他浏览器 function OnInput (event) { alert ("文本内容 ...
- 改变Oracle数据库连接端口
Oracle数据库默认数据库监听与连接端口是1521, 但是有时候项目中需要更改默认端口 这样做很多时候客户要求,基于安全考虑. 以Oracle 11g 为例, 更改Listener的端口大致 需要以 ...
- MPAndroidChart 的实现
效果图: 代码实现: package com.jiahao.me; import java.util.ArrayList; import java.util.List; import android. ...
- appcompat_v7/res/values-v21/themes_base.xml No resource found that matches the given name
今天晕死了 将工作区里的appcompat_v7删除掉了, 然后随意新建了一个工程,因为已经升级到5.0了,appcompat_v7内容有所改变, 以前的工程引用旧的appcompat_v7的某些属性 ...
- MFC视图切换大全总结
单纯视图之间的切换 单文档多视图切换是我在学习MFC中遇到的一个老大难问题,在今天总算是一一破解了.我觉得视图切换分为三个等级,第一是在未切分窗格的情况下切换视图类:第二是在分割窗格的一个窗格内实行视 ...
- Android BLE开发之Android手机搜索iBeacon基站
本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 上次讲了Android手机与BLE终端之间的通信,而最常见的BLE终端应该是苹果公司倡导的iBeacon基站. ...
- 怎么去掉li标签前面的点??
<ul class="list"> <li> </li> <li> </li> </ul> .list li ...