JavaScript高级程序设计读书笔记(一)

前言

在一个月前,我已经了解到了关于JavaScript这门编程语言的相关知识,并且跟着一些教学视频实现了一些轮播、动画等效果,但我知道这肯定是不够的。JS虽然是一种专为与网页交互而设计的脚本语言,显然也不仅仅只能做这一点点事,我接触到的还只是冰山一角罢了。目前高程3这本书我已经看到第十章了,看得时候是本着“欣赏、了解”的原则去看的,很多地方没有仔细分析,也没有笔记,慢慢地也发现这样过一遍是不行的,原声JS的基础不打好,后面的路就不会太平坦,所以再来一遍,把一些学到的知识和需要深入的记录一下。

笔记从这里开始

一、JavaScript相关介绍

  1. JavaScript的组成部分:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)

  2. ECMAScript作为核心,规定了语法、类型、语句、关键字、保留字、操作符和对象。现在好像已经最新已经到了ECMAScript第6版,即“ES6”;

  3. DOM是针对XML但经过拓展用于HTML的应用编程接口(API)。DOM将整个页面映射为多层次节点结构,DOM级别有1级、2级和3级;

  4. BOM使得开发人员控制浏览器页面以外的部分,比如弹出、关闭新的窗口,显示器分比率详细信息等等,它一直以来没有确定的标准,HTML5中把很多很多BOM功能写入了正式规范,以后兼容性会越来越高。

  5. 现状:目前JavaScript的三个部分在当前主要的五个浏览器(IE、FireFox、Chrome、Safari、Opera)得到了不同程度的支持,所以其兼容性是前端开发中非常重视的问题。

  6. HTML中添加JavaScript脚本的方式一般分两种,一是直接在<scripe></script>中直接写;第二种是引入外部文件:<script src="js/main.js"><script>

  7. 延迟脚本:defer属性。表明脚本在执行时不会影响页面的构造,即脚本会延迟到整个页面解析完毕之后再执行(立即下载,延迟执行)。格式:<script src="js/main.js" defer(="defer")></script>

  8. 异步脚本:async属性。告诉浏览器立即下载文件。异步脚本一定会在页面的load事件前执行(异步加载问题在大项目中肯定是要着重研究的,以后再分析)。

二、一些基本概念

(一)语法

一切(变量、函数名和操作符)区分大小写;

标识符: 指变量、函数、属性的名字,或者函数的参数。第一个字符必须是字母、下划线(_)或者美元符号($),JS中的标识符一般用驼峰式大小写格式:oText,aLi等等;

单行注释://多行注释:/* (中间每一行也可以用一个*号来提高可读性) */

严格模式: ECMAScript第五版引入的一种不同的解析和执行模型(strict mode),代码顶部添加 "use strict"

语句 : 每一句后面用分号结尾,也能用{}将多条语句组合到一起,建议始终在控制语句中使用,例如: if( test) { alert('hello!') };

(二)关键字和保留字记不住,有需要再查看...

(三)变量

ECMAScript中的变量为松散变量,即可以保存任何类型的数据,变量只是一个保存值的占位符.定义变量要用var,作用为 将变量定义为该变量的作用域中的局部变量,退出作用域变量即销毁。(不用var会创建全局变量);

(四)数据类型

五种基本数据类型:UndefinedBooleanNumberStringNull;复杂数据类型:Object

(五)typeof操作符

typeof操作符用来检测给定变量的数据类型 。检测语法: typeof( 95) 或者 typeof 95

  1. “undefined”——这个值未定义;

  2. “boolean”—— 布尔值,有true和false两个值;

  3. “string”—— 字符串;

  4. “number”—— 数值;

  5. “object”—— 对象或是ull;

  6. “function”—— 函数 (函数其实也是对象);

  7. “null”返回object,因为特殊值null是一个空的对象引用;

(六)undefined类型

只有一个值就是它自己,var声明了一个变量但是没对其初始化时,变量的值就是undefined;

(七)null类型

只有一个值那就是它自己,表示一个空对象指针,注意: 意在保存对象的变量还没有真正保存对象,就应明确地让该变量保存null值;

(八)Boolean类型

两个值:true和false,true不一定等于1,false不一定等于0;

(九)number类型

  1. 浮点数值中包含一个小数点,极大或极小的数可以用e表示,var aNumber=1.23e7;(等价于1.23*10的7次方,不要轻易比较两个特点的浮点数);

  2. 数值范围(5e-324,1.7976931348623157e+308)超过这个数值范围则会转换为-Infinity,Infinity;

  3. NaN(not a Number)非数值 ,任何数值除以非数值都会返回NaN;isNaN()函数检测一个值是否“不是数值”;

  4. 数值转换:三个函数:Number()、parseInt()、parseFloat()。Number()可以用于任何数据类型true返回1、false返回0 、null返回0、undefined返回NaN、‘ ’返回0;parseInt()忽略字符串前的空格,找到的第一个字符不是负号或者数字就会返回NaN,返回整数(因为小数点不是有效的数字字符);parseFloat()和parseInt()一样,只是它返回浮点数;

(十)string类型

表示由0或多个16位Unicode字符( 为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求)组成的字符序列,即字符串。字符串一旦创造值就不能变,只能销毁原来的再用一个包含新值的字符串填充变量。

(十一)object类型

对象,一组数据和功能的集合。创建自定义对象的语法var a = new object ();object类型是它所有实例的基础, object类型拥有的方法它的实例也拥有。

(十二)操作符

一组用于操作数据值的操作符,包括算术操作符(+-*/)、位操作符、关系操作符和相等操作符...

下次做笔记了再写...

posted @ 2016-04-20 21:00  Syton  阅读(239)  评论(0)    收藏  举报