JavaScript由ECMAScript BOM DOM三部分组成

ECMAScript重要版本1,3,5,6,提供核心语言功能

DOM提供访问和操作网页内容的方法和接口

BOM提供与浏览器交互的的方法和接口

伴随一生的问题:浏览器兼容性

IE5支持ECMAScript1、IE5.5-IE7支持ECMAScript3、IE8不完全支持ECMAScript5、IE9+完全支持ECMAScript5

现在的5大浏览器对这3个部分的支持情况 :
ECMAScript3 大体上都还不错,ECMAScript5支持程度越来越高,ECMAScript6相差较多
DOM相差较多
BOM在HTML5正式纳入标准,5大浏览器实现了某些众所周知的共同特性,但其他特性 相差较多

在HTML中使用JavaScript:使用script标签

1、在script元素中直接写JavaScript代码
2、在元素属性中直接嵌入JavaScript代码
3、引入外部js文件:好处:①可维护性②可缓存③适应未来

脚本的位置:所有脚本在内容最后面。

蓝色内容限于理解,现实中很少用到

延迟脚本:HTML5规定defer属性只适用于外部脚本文件。现实中,并不一定什么时候执行,因此最好只包含一个延迟脚本。

异步脚本:同defer一样,改变处理脚本的行为。2个异步脚本不保证执行顺序,因此确保2个脚本之间互不依赖非常重要

元素属性引入JavaScript代码

文档模式:混杂模式IE5 标准模式 这两种模式主要影响CSS内容的呈现,某些情况下也会影响到JavaScript的解释执行。

准标准模式:不标准的地方主要体现在处理图片间隙的时候 (在表格中使用图片时问题最明显)

如果没有文档类型声明Doctype,所有浏览器都会呈现混杂模式。不同浏览器在这种模式下的行为差异非常大。如果不使用某些hack技术,跨浏览器行为根本就没有一致性可言。

本页面需要浏览器支持(启用)JavaScript。

if(){}

do{}while()语句

while(){}

for语句

即使i是在循环内部定义的变量,但在外部也可以访问到它。因为在ECMAScript中不存在块级作用域。

for(...in...)语句:精准的迭代语句,可用来枚举对象的属性。

因为对象的属性没有顺序,所以循环出的属性名顺序不可预测。

null和undefined在ECMA5以下会报错,在ECMA5中不执行循环体。因此为了保证最大的兼容性,在for in 循环前先确定对象的值是不是null或者undefined。

 

label:语句:加标签以便将来由breake或者continue语句引用,一般与for等循环语句配合使用。

breake或者continue语句

with语句:作用是将代码的作用域设置到一个特定的对象中。主要是为了简化多次编写同一个对象的工作。

严格模式with语句会报错,如果大量使用with语句会导致性能下降,调试代码困难。因此,不建议使用with语句。

switch语句

ECMAScript中函数不存在函数签名的概念,没有重载

无需指定返回值,可以在任何时候返回任何值。未指定返回值的函数,返回的是一个特殊的undefined值

函数内位于return语句之后的任何代码都不会执行。

JavaScript的进阶之路(一)的更多相关文章

  1. JavaScript正则进阶之路——活学妙用奇淫正则表达式

    原文收录在我的 GitHub博客 (https://github.com/jawil/blog) ,喜欢的可以关注最新动态,大家一起多交流学习,共同进步,以学习者的身份写博客,记录点滴. 有些童鞋肯定 ...

  2. JavaScript的进阶之路(七)客户端JavaScript知识点总结

    一.客户端JavaScript主要是BOM DOM的操作和js脚本的兼容性.互用性.可访问性.安全性的应用.以及一些框架的引用. 二.BOM:浏览器对象模型 主要介绍window对象 1.定时器:se ...

  3. JavaScript的进阶之路(六)理解函数

    函数:定义一次,多次调用:用于对象的属性则称为对象的方法:在JavaScript中,函数即对象:嵌套的函数形成闭包: 定义函数和简单调用函数: //函数定义 function f1(){ //没有参数 ...

  4. JavaScript的进阶之路(五)理解数组1

    数组是值得有序结合,每个值叫做一个元素,每个元素的位置称为索引,索引从0开始. 在JavaScript中,数组是对象的特殊形式.继承自Array.prototype中的属性,有丰富的数组操作方法. 通 ...

  5. JavaScript的进阶之路(四)理解对象2

    对象的三个属性 原型属性 1.var v={}的原型是Object.prototype;继承了一个constructor属性指代Object()构造函数,实际的原型是constructor.proto ...

  6. JavaScript的进阶之路(四)理解对象1

    对象是JavaScript的基本数据类型.简单的名值对组成了对象,BUT:还可以从一个被称为原型的对象继承属性,对象的方法通常就是继承的属性. 对象最常见的用法有:创建.设置.查找.删除.检测.枚举它 ...

  7. JavaScript的进阶之路(二)函数简介,变量、作用域和内存问题

    <h3>ECMAScript中函数不存在函数签名的概念,没有重载</h3><h3>无需指定返回值,可以在任何时候返回任何值.未指定返回值的函数,返回的是一个特殊的u ...

  8. JavaScript的进阶之路(五)理解数组2

    数组方法 //定义一个测试数组 var array1 = [1,2,5,null,"a"]; //join()方法是String.split()方法的逆操作,后者是将字符串分割成若 ...

  9. JavaScript的进阶之路(三)引用类型之Object类型和Array类型

    引用类型 Object类型 function a(num){ if(num>3){ a(--num); } console.log(num); } a(5); //如何创建对象的实例 var o ...

随机推荐

  1. POJ3321 Apple Tree (JAVA)

    树形数组题,有一定难度. 首先得搞清楚树形数组是什么 - 它是建立在原始数组上的统计数组 - 目的:方便对原始数组进行切片统计,主要用于统计切片的累加和 其实你可以对切片进行扫描,把元素一个一个加起来 ...

  2. 解决Maven本地仓库没有Jar包问题,请求中央仓库自动下载以及手动下载方法

    一.首先指定本地仓库 <localRepository>D:\software\Maven_Home\mvn_repository</localRepository> 二.修改 ...

  3. 关于dedecms数据量大以后生成目录缓慢的问题解决

    四月份的时候博客被封.我不知情.因为一直很忙,没有来得及看.前两天来看以后,发现居然被封,吓傻了我. 赶紧找原因,原来是转载了某个人的博文,被他举报了,然后就被封了. 觉得很伤心,毕竟这个博客陪伴了我 ...

  4. 使用app-inspector查看元素,无法连接到手机,提示错误{ Error: Command failed ……forward tcp:9001 tcp:9001错误解决

    在学习使用app-inspector查看元素时,碰到一个问题.在cmd窗口执行命令app-inspector --port 5678 -u 85EABNFSU53R --verbose  ,连接不到手 ...

  5. 分分钟钟学会Python - 数据类型(int、bool、str)

    第三天学习内容 今日内容 1.整型(int) 2.布尔类型(bool) 3.字符串(str) 内容详细 1.整型 Python中的整型用int表示. 1.python2中: 在32位机器上,整数的位数 ...

  6. python学习 条件控制

    if - else  if 条件a : 内容a else : 内容 非a if - elif - else  if 条件a : 内容a elif 条件b: 内容b-a else : 内容 非(a∪b) ...

  7. vue项目里登录界面实现回车登录

    全局监听enter键,是把监听事件绑定到document上,无需获取焦点之类的 created() { let that = this; document.onkeydown =function(e) ...

  8. elasticsearch-7.0.0-windows 安装

    一.安装 1.下载压缩包   elasticsearch-7.0.0-windows-x86_64.zip 2.解压到   E:\env\elasticsearch-7.0.0     3.启动:进入 ...

  9. sort sorted() reverse() reversed() 的区别

    sort()是可变对象(字典.列表)的方法,无参数,无返回值,sort()会改变可变对象,因此无需返回值.sort()方法是可变对象独有的方法或者属性,而作为不可变对象如元组.字符串是不具有这些方法的 ...

  10. react大纲

    课程大纲: https://miaov.com/index.php/news/newsDetail/nid/263  原文件 Npm 基本使用 切换镜像, 国内的网络访问 npm 服务器可能比较慢, ...