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. 容器化VS微服务

    1 微服务 1.1 思想 开发人员自己测试.部署和运维自己编写的代码,即自己负责构建生命周期的全部. 1.2 Spring Boot 提供服务化的能力,即把容器.服务所需依赖和服务一起打包成一个jar ...

  2. [转载]Flip an image in UIImageView using UIView transitionWithView

    View animations on the iPhone are wonderful. Used properly they will delight your users and help you ...

  3. bzoj 3261 最大异或和 可持久化字典树(01树)

    题目传送门 思路: 由异或的性质可得,题目要求的式子可以转化成求$max(pre[n]^x^pre[i])$,$pre[i]$表示前缀异或和,那么我们现在就要求出这个东西,所以用可持久化字典树来求,每 ...

  4. C#嵌入字体

    1:将字体文件(*.ttf)添加到资源文件里,注意资源的名称 2:在Program.cs文件里声明 using System; using System.Collections.Generic; us ...

  5. sublime 运行 python

    sublime 中 选择菜单 Tools--> Build System-->New Build System,编辑文件如下: /usr/local/Cellar/python/3.7.0 ...

  6. LESS从入门到精通

    LESS从入门到精通 一.LESS是什么 LESS 是 CSS预处理语言,是 CSS 的扩展. 然后说说比较流行的几款预编译器:SASS/SCSS.LESS.Stylus. SASS 学习网站: ht ...

  7. MB Star C3 vs MB Star C4

    New Mercedes Benz Star C3 is a professional diagnostic tool specially for mercedes benz cars. Merced ...

  8. mysql入门与进阶

    MySQL入门与进阶 需求:对一张表中的数据进行增删改查操作(CURD) C:create 创建 U:update 修改 R:read 读|检索 查询 D:delete 删除涉及技术:数据库 1.数据 ...

  9. SQL语句exists用法

    首先头脑中有三点概念: 1 .  EXISTS子查询找到的提交 NOT EXISTS 子查询中 找不到的提交 说明:不要去翻译为存在和不存在,把脑袋搞晕. 2 . 建立程序循环的概念,这是一个动态的查 ...

  10. springboot利用fastjson序列化输出(默认是jackson)

    在@SpringBootApplication类中添加 @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { //创 ...