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

前言

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

笔记从这里开始

1、JavaScript相关介绍

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

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

  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>async

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

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

2、一些基本概念

(一)语法

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

标识符: 指变量、函数、属性的名字,或者函数的参数。第一个字符必须是字母、下划线(_)或者美圆符号($),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返回一、false返回0 、null返回0、undefined返回NaN、‘ ’返回0;parseInt()忽略字符串前的空格,找到的第一个字符不是负号或者数字就会返回NaN,返回整数(由于小数点不是有效的数字字符);parseFloat()和parseInt()同样,只是它返回浮点数;

(十)string类型

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

(十一)object类型

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

(十二)操做符

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

下次作笔记了再写...

相关文章
相关标签/搜索