JavaScript

一、简介

1、定义

⑴、javascript是一门动态弱类型的解释型编程语言,增强页面动态效果,实现页面与用户之间的实时动态的交互。

⑵、javascript是由三部分组成:ECMAScript、DOM、BOM

    ①、ECMAScript是由ECMA-262定义,提供核心语言功能(ECMA是欧洲计算机制造商协会)

    ②、DOM(Document Object Model)文档对象模式,提供访问和操作网页内容的方法和接口。

    ③、BOM(Browser Object Model)浏览器对象模式,提供与浏览器交互的方法和接口

2、注释

JavaScript中代码注释:

⑴、单行 ://

⑵、多行 :/**/

3、引入文件

⑴、引入外部文件

⑵、存放在HTML的或中

①、HTML的head中

②、HTML的body代码块底部(推荐)

⑶、为什么要放在代码块底部?

①、HTML代码从上到下执行,先加载CSS,避免html出现无样式状态。

②、将JavaScript代码块放在body最后,可以让网页尽快的呈现给用户,减少浏览者的等待时间,避免因为JS代码块阻塞网页的呈现。

二、变量

需要注意的是:局部变量必须以var开头声明,如果不写var则为全局变量。

注:需要注意变量提升,就是把变量位置放到函数体的最上方。

三、运算符

1、算术运算符

⑴、

①、一元算术

     +  一元加,数值不会产生  对非数值应用一元加运算时,会调用Number()转型函数对这个值进行转换。

     –  一元减,转化为负数      ~~

      ++  递增1    通过Number()转换为数字,再加1,再重新赋值给操作数值

      ––  递减1      ~~

②、二元算术      

      +    加法

      –    减法

      *    乘法

      /    除法

      %     取模

⑵、二元运算过程

2、比较运算符

     ===  严格运算符      比较过程没有任何类型转换

    !==  严格运算符      ===的结果取反

      ==    相等运算符     如果两个操作值不是同一类型,相等运算符会尝试进行一些类型转换,然后再进行比较

     !=    不相等运算符   ==的结果取反

      >     大于运算符

     >=    大于等于运算符

      <     小于运算符

     <=     小于等于运算符

⑴、严格运算符比较过程

⑵、相等运算符比较过程

⑶、大于小于运算符比较过程

3、逻辑运算符

     ! 非(两个!!表示Boolean转型函数)    返回一个布尔值

     &&  与   两个操作都为true时返回true,否则返回false(返回值不一定是布尔值),可以多个连用(..&&..&&..)

     ||    或    两个操作都为false时返回false,否则返回true(返回值不一定是布尔值),可以多个连用(..||..||..)

         //七个假值

         console.log(!!undefined);//false

         console.log(!!null);//false

         console.log(!!0);//false

         console.log(!!-0);//false

         console.log(!!NaN);//false

         console.log(!!' ');//false

         console.log(!!false);//false

        console.log

        console.log

⑴、&&  常用操作

⑵、 ||    常用操作

四、数据类型

特殊值

1、数字(Number)

 JavaScript中不区分整数和浮点数,所有数字均用浮点数字表示。

⑴、转换

parseInt()  将某值转换成整数,不成功则NaN。

parseFloat()  将某值转换成浮点数,不成功则NaN。

 ⑵、特殊值

 NaN,非数字。可以使用isNaN(num)来判断。

 Infinity,无穷大。可以使用isFinite(nun)来判断。

JavaScript_第1张图片

 

2、字符串(String)

JavaScript_第2张图片

转义字符

3、布尔类型(Boolean)

true(真)和false(假)

JavaScript_第3张图片

4、数组(Array)

var name=Array("nick","jenny");

var name=["nick","jenny"];

JavaScript_第4张图片

5、Math

Math对象是一个静态对象,而不是构造函数。实际上,Math只是一个由JavaScript设置的命名空间,用于存储数学函数。

Math方法

五、语句

1、条件语句(if、switch)

 JavaScript中支持两个条件语句,分别是if和switch。

⑴、if语句

JavaScript_第5张图片

⑵、switch语句

JavaScript_第6张图片

2、循环语句(for、for in、while、do-while)

 JavaScript中支持四种循环语句,分别是:for,for in,while,do-while

⑴、for 循环

JavaScript_第7张图片

⑵、for in 循环

JavaScript_第8张图片

⑶、while 循环

JavaScript_第9张图片

⑷、do-while 循环

JavaScript_第10张图片

3、label语句

 label语句可以理解为跳出任意循环。

⑴、未加label实例

⑵、加label实例

4、异常处理

 主动抛出异常:throw error('****')

JavaScript_第11张图片

六、函数function

1、定义函数的三种方式

JavaScript_第12张图片

2、函数参数(arguments)

函数传参的个数可以小于实际需传参的个数,没传参的默认为undefined

⑴、函数传多默认不起作用

JavaScript_第13张图片

⑵、arguments可接受所有参数,返回一个数组

JavaScript_第14张图片

3、作用域与作用链

⑴、JavaScript中没有块级作用域

JavaScript_第15张图片

⑵、作用域链

每个构造函数都有一个内部对象指针,指向原型对象,而原型对象也包含一个指向构造函数的指针。如此层层递进,形成作用域条

JavaScript_第16张图片

4、闭包

闭包就是能够读取其他函数内部变量的函数。

JavaScript_第17张图片

闭包使函数中的变量都被保存在内存中,内存消耗大,所以少用闭包,否则会造成网页的性能低,在IE中可能导致内存泄露。

所以在退出函数之前,将不使用的局部变量全部删除。

5、面向对象(特性、构造模式、原型模式prototype)

⑴、面向对象的三大特性:

封装:隐藏代码实现的细节,实现代码的模块化

继承:扩展已经存在的代码模块,实现代码重用

多态:接口的不同实现方式,实现接口重用

关键字:

this:代指此时的对象

new:创建对象时必须使用

⑵、构造函数模式

JavaScript_第18张图片

上述模式把同样的函数封装到了不同的对象,造成了内存浪费。

⑶、原型模式(prototype)

JavaScript_第19张图片

所有的构造函数的prototype属性都指向另一个对象(同一块内存地址),这个对象的所有属性和方法,都会被构造函数的实例继承。

6、prototype验证方式(isPrototypeOf、hasOwnProperty、in)

⑴、isPrototypeOf()

用来判断一个对象是否存在于另一个对象的原型链中

JavaScript_第20张图片

⑵、hasOwnProperty()

用来判断某一个对象(不包括原型链)是否具有指定属性

JavaScript_第21张图片

⑶、in运算

判断某个实例是否具有某个属性

JavaScript_第22张图片

七、其他

1、序列化

JSON.stringify(obj)      序列化

JSON.parse(str)          反序列化

2、转义

JavaScript_第23张图片

3、eval

JavaScript中的eval既可以运行代码,也可以获取返回值。

eval()

EvalError()       执行字符串中的JavaScript代码

4、正则表达式

JavaScript_第24张图片

JavaScript中支持正则表达式,其主要提功了两个功能:

①、test(string)  用于检测正则是否匹配

②、exec(string)  用于获取正则匹配的内容

匹配模式:

     g:表示全局(global)模式,匹配所有字符串,不会匹配到第一项时停止

     i:表示不区分大小写(case-insensitive)模式

    m:表示多行(multiline)模式,到达一行文本末尾时还会继续查找下一行中是否存在匹配的项。

括号分组:

JavaScript_第25张图片

元字符

匹配规则简写

5、时间处理

时间操作中有两种时间:

⑴、时间统一时间

⑵、本地时间(东八区)

  data方法

你可能感兴趣的:(JavaScript)