学习第一天(2019-11-14)

第一章 JavaScript简介

   1、 JavaScript与ECMAScript的关系:早期,Netscape Navigator和微软(微软的为JScript)都有其各自的JavaScript实现,这意味着有两个不同的JavaScript版本,随着业界担心的日益加剧,JavaScript的标准化被提上议事日程。欧洲计算机协会制造商(ECMA)召集各公司优秀程序员,制定了DCMA-262——名为ECMAScript的新脚本语言标准。

   2、JavaScript的实现

        由下列三个部分组成:

            a:核心(ECMAScript)

            b:文档对象模型(DOM)

            c:浏览器对象模型(BOM)

       JavaScript的这三个组成部分,在当前五个主要浏览器(IE、Firfox、Chrome、Safari和Opera)中都得到了不同程度的支持。其中所有浏览器对ECMAScript第3版的支持大体上都还不错,而对ECMAScript5的支持程度越来越高,但对DOM的支持则彼此相差比较多。对已经正式纳入HTML5标准的BOM来说,尽管各浏览器都实现了某些众所周知的共同特性,但其他t特性还是会因浏览器而异。

第二章 在HTML中使用JavaScript

   1、把JavaScript插入到HTML页面中要使用<script>元素。使用这个元素可以把JavaScript嵌入到HTML中(方法一),还可以包含外部的JavaScript文件。

   2、在包含外部的JavaScript文件,src指向文件的URL,可以是同一个服务器的文件,也可以是外域的文件。

   3、传统的做法一般把所有<script>元素都放在页面的<head>元素中,对于需要很多的JavaScript代码的页面来说,可能会导致页面出现延迟,为了避免这个问题,现代的             web应用程序,一般都把全部JavaScript引用放在<body>元素中页面的后面,如下:

                 <html> <head> ......   </head>

                             <body> HTML代码     JavaScript代码<script type = "text/javascript" src="example.js"></script>...

                             </body> </html>

   4、defer属性和async属性,可控制脚本的显示时机。

第三章 基本概念

     本章介绍JavaScript基本语法,由于比较简单,下面列出一些不熟悉的和易错点:

   1、ECMAScript的变量是松散类型的,可以保存任何类型的数据(Undefined、Null、Boolean、Number、String、Object),每个变量仅仅是一个占位符而已。

   2、typeog操作符可检测变量的数据基本类型,instanceof可检测引用类型。

   3、JavaScript浮点类型,采用IEEE754标志,有一个通病会产生误差,所以永远不要测试某个浮点数的数值,如 var a =0.1; var b=0.3;  a+b==0.3结果为false。

   4、with语句是将代码作用域设置到一个特定的对象中。大量使用with语句会降低性能,开发中不建议使用。

   5、函数可以有返回值也可以没有,建议有返回值时保持函数一直有,没有时保持函数一直没有,便于维护。函数的参数在内部是用一个数组来表示的(arguments,可通            过数组下标访问),所以命名参数只是提供便利,不是必须的,所以函数没有传统意义上的重载。

第四章 变量、作用域和内存问题

   1、基本类型和引用类型的值:

           基本类型的赋值是按值传递,被赋值的变量会重新开辟一个新的内存空间,在把值写进去,而对引用进行赋值,虽然会重写开辟内存空间,但只把引用的地址复制了               一遍,两个变量指向内存中的同一个对象。

   2、传递参数:按值传递,基本数据类型,把值复制个参数,形参的改变对实参无影响,引用传递把引用的值复制给形参,实参和形参指向同一个对象。

   3、作用域:JavaScript没用块级作用域,for(var i=0;i<10; i++);  即使在for循环执行结束,变量i也依旧会存在于循环外部的执行环境中。

   4、查询标识符会从作用域的前端开始,向上逐级查询与给定的名字匹配的标识符。

   5、垃圾收集(一般有两种方法):标记清除法(现在各浏览器基本使用此方法)、引用计数法(存在循环引用的问题,现在基本不采用)。

   6、程序员可通过解除引用来管理内存(让垃圾收集器自动回收)。

猜你喜欢

转载自www.cnblogs.com/xiaoxb17/p/11855068.html