在一个月前,我已经了解到了关于JavaScript这门编程语言的相关知识,而且跟着一些教学视频实现了一些轮播、动画等效果,但我知道这确定是不够的。JS虽然是一种专为与网页交互而设计的脚本语言,显然也不只仅只能作这一点点事,我接触到的还只是冰山一角罢了。目前高程3这本书我已经看到第十章了,看得时候是本着“欣赏、了解”的原则去看的,不少地方没有仔细分析,也没有笔记,慢慢地也发现这样过一遍是不行的,原声JS的基础不打好,后面的路就不会太平坦,因此再来一遍,把一些学到的知识和须要深刻的记录一下。javascript
JavaScript的组成部分:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)前端
ECMAScript做为核心,规定了语法、类型、语句、关键字、保留字、操做符和对象。如今好像已经最新已经到了ECMAScript第6版,即“ES6”;java
DOM是针对XML但通过拓展用于HTML的应用编程接口(API)。DOM将整个页面映射为多层次节点结构,DOM级别有1级、2级和3级;编程
BOM使得开发人员控制浏览器页面之外的部分,好比弹出、关闭新的窗口,显示器分比率详细信息等等,它一直以来没有肯定的标准,HTML5中把不少不少BOM功能写入了正式规范,之后兼容性会愈来愈高。浏览器
现状:目前JavaScript的三个部分在当前主要的五个浏览器(IE、FireFox、Chrome、Safari、Opera)获得了不一样程度的支持,因此其兼容性是前端开发中很是重视的问题。异步
HTML中添加JavaScript脚本的方式通常分两种,一是直接在<scripe></script>
中直接写;第二种是引入外部文件:<script src="js/main.js"><script>
。async
延迟脚本:defer属性。代表脚本在执行时不会影响页面的构造,即脚本会延迟到整个页面解析完毕以后再执行(当即下载,延迟执行)。格式:<script src="js/main.js" defer(="defer")></script>
。编程语言
异步脚本:async属性。告诉浏览器当即下载文件。异步脚本必定会在页面的load事件前执行(异步加载问题在大项目中确定是要着重研究的,之后再分析)。函数
一切(变量、函数名和操做符)区分大小写;动画
标识符: 指变量、函数、属性的名字,或者函数的参数。第一个字符必须是字母、下划线(_)或者美圆符号($),JS中的标识符通常用驼峰式大小写格式:oText,aLi等等;
单行注释://
多行注释:/* (中间每一行也能够用一个*号来提升可读性) */
;
严格模式: ECMAScript第五版引入的一种不一样的解析和执行模型(strict mode),代码顶部添加 "use strict"
;
语句 : 每一句后面用分号结尾,也能用{}
将多条语句组合到一块儿,建议始终在控制语句中使用,例如: if( test) { alert('hello!') }
;
ECMAScript中的变量为松散变量,便可以保存任何类型的数据,变量只是一个保存值的占位符.定义变量要用var
,做用为 将变量定义为该变量的做用域中的局部变量,退出做用域变量即销毁。(不用var会建立全局变量);
五种基本数据类型:Undefined
、Boolean
、Number
、String
、Null
;复杂数据类型:Object
typeof操做符用来检测给定变量的数据类型 。检测语法: typeof( 95)
或者 typeof 95
;
“undefined”——这个值未定义;
“boolean”—— 布尔值,有true和false两个值;
“string”—— 字符串;
“number”—— 数值;
“object”—— 对象或是ull;
“function”—— 函数 (函数其实也是对象);
“null”返回object,由于特殊值null是一个空的对象引用;
只有一个值就是它本身,var声明了一个变量可是没对其初始化时,变量的值就是undefined;
只有一个值那就是它本身,表示一个空对象指针,注意: 意在保存对象的变量尚未真正保存对象,就应明确地让该变量保存null值;
两个值:true和false,true不必定等于1,false不必定等于0;
浮点数值中包含一个小数点,极大或极小的数能够用e表示,var aNumber=1.23e7;
(等价于1.23*10的7次方,不要轻易比较两个特色的浮点数);
数值范围(5e-324,1.7976931348623157e+308)超过这个数值范围则会转换为-Infinity,Infinity;
NaN(not a Number)非数值 ,任何数值除以非数值都会返回NaN;isNaN()函数检测一个值是否“不是数值”;
数值转换:三个函数:Number()、parseInt()、parseFloat()。Number()能够用于任何数据类型true返回一、false返回0 、null返回0、undefined返回NaN、‘ ’返回0;parseInt()忽略字符串前的空格,找到的第一个字符不是负号或者数字就会返回NaN,返回整数(由于小数点不是有效的数字字符);parseFloat()和parseInt()同样,只是它返回浮点数;
表示由0或多个16位Unicode字符( 为每种语言中的每一个字符设定了统一而且惟一的二进制编码,以知足跨语言、跨平台进行文本转换、处理的要求)组成的字符序列,即字符串。字符串一旦创造值就不能变,只能销毁原来的再用一个包含新值的字符串填充变量。
对象,一组数据和功能的集合。建立自定义对象的语法var a = new object ()
;object类型是它全部实例的基础, object类型拥有的方法它的实例也拥有。
一组用于操做数据值的操做符,包括算术操做符(+-*/)、位操做符、关系操做符和相等操做符...
下次作笔记了再写...