Skip to content

JavaScript

1.概念

一门客户端脚本语言

  • 运行在客户端浏览器中。每一个浏览器都有JavaScript的解析引擎
  • 脚本语言:不需要编译,直接就可以被浏览器解析执行了

2.功能

  • 可以来增强用户和HTML页面的交互过程,可以来控制HTML元素,让页面有一些动态的效果,增强用户的体验。

3.JavaScript发展史

  1. 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为:C--,后来更名为:ScriptEase
  2. 1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript。请来SUN公司的专家,修改LiveScript,命名为JavaScript
  3. 1996年,微软抄袭JavaScript开发出JScript语言
  4. 1997年,ECMA(欧洲计算机制造商协会),ECMAScript,就是所有客户端脚本语言的标准。
  • JavaScript = ECMAScript + JavaScript自己特有的东西(BOM + DOM)

  • ECMAScript:客户端脚本语言的标准

4.基本语法

4.1与HTML结合方式

4.1.1内部JS

* 定义< script>,标签体内容就是js代码
`<script>`
`var a = 1;`
`alert(a);`
`</script>`
document.write(a) //可以直接输出在页面上

4.1.2外部JS

  • 定义< script>,通过src属性引入外部的js文件吧

  • 注意:

    1. < script>可以定义在html页面的任何地方,但是定义的位置会影响执行的顺序。
    2. < script>可以定义多个。

4.2注释

4.2.1单行注释

// 注释内容

4.2.2多行注释

/* 注释内容 */

4.3数据类型

4.3.1原始数据类型(基本数据类型):

  1. number:数字。 整数/小数/NaN(not a number ( 一个不是数字的数字类型)
  2. string:字符串。 字符串 'abc' "a"
  3. boolean:true和false
  4. null:一个对象为空的占位符
  5. undefined:未定义。如果一个变量没有给初始化值,则会被默认为undefined

4.3.1引用数据类型:对象

4.4变量

  1. 变量:一小块存储数据的内存空间

  2. Java语言是强类型语言,而JavaScript是弱类型语言

    1. 强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据。

    2. 弱类型:在开辟变量存储空间时,不定义空间将来存储的数据的数据类型。可以存储任意类型的数据。

  3. 语法:var 变量名 = 初始化值;

  4. typeof运算符:获取变量的类型 注:null运算符后得到的时object,被认为占位符

4.5运算符

4.5.1一元运算符

只有一个运算数的运算符

++ -- 
+(正号) -(负号 )
* 注意
在JS中,如果运算数不是运算符所要求的类型,那么js引警会自动的将运算数进行类型转换
## 其他类型转number:##         
1.string转number: 按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
2. boolean转number: true转为1,false转为0
3.NaN
4.NaN

4.5.2算数运算符

+ - * / %

4.5.3赋值运算符

= += -= ...

4.5.4比较运算符

> < >= <= == ===(全等于)
* 比较方式
	1. 类型相同,直接比较
		* 字符串,按照字典顺序比较,按位逐一比较,直到得出大小为止。
	2. 类型不同,先进行类型转换,再比较
		* ===,全等于,在比较前先判断类型,如果类型不一样,则直接返回false

4.5.5逻辑运算符

	&& || !
	* 其他类型转boolean
		1. number:0或NaN为假,其他为真
		2. string:除了空字符串(""),其他都是true
		3. null&undefined:false
		4. 对象:所有对象都为true
	* ## 可用if(obj)判断#
		1. obj为空字符串
		2. obj为null或者undefined

4.5.6三元运算符

? :

5.流程控制语句

if...else...

swtich

在java种,switch语句可以接受的数据类型:

byte int short char enum(1.5) String(1.7)

在JS种,swtich语句可以接受任意的原始数据类型#

while

do...while

for

6.JS特殊语法

  1. 语句以;结尾,如果一行只有一条语句,则可以省略

  2. 变量的定义使用var关键字,也可以不使用

     * 用,定义的变量是局部变量
     * 不用,定义的变量是全局变量
    

7.基本对象

7.1Function:函数对象

1. 创建
	1. var 方法名 = new Function(形式参数列表, 方法体);
	2. function 方法名(形式参数列表) {方法体}
	3. var 方法名 = function(形式参数列表) {方法体}
2. 方法
3. 属性
	length:代表形参的个数
4. 特点
	1. 方法定义是,形参的类型不用写,返回值类型也不写
	2. ## 方法是一个对象,如果定义名称相同的方法,会覆盖#
	3. 在JS中,方法的调用只与方法的名称有关,和参数列表无关
	4. 在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数
5. 调用
	方法名称(实际参数列表);

7.2Array:数组对象

1. 创建:
	1. var arr = new Array(元素列表);
	2. var arr = new Array(默认长度);//只输入一个数字
	3. var arr = [元素列表];
2. 方法
	join(参数):将数组中的元素按照指定的分隔符拼接为字符串
	push(参数):往数组最后添加一个元素
3. 属性
	length:数组长度
4. 特点
	1. JS中,数组元素的类型可变的。
	2. JS中,数组的长度是可变的。

7.3Boolean

7.4Date:日期对象

1. 创建
	var date  = new Date();
2. 方法
	toLocaleString():返回当前Date对象对应的实际本地字符串格式,返回本地时间,与当前操作系统相符 
	getTime():获取毫秒值,返回当前日期对象描述的时间和1970年1月1日零点的毫秒值差
	//一般作为时间戳

7.5Math:数学对象

1. 创建:
	* 特点:Math对象不用创建直接使用。	Math.方法名();
2. 方法:
	random():返回0~1之间的随机数。包含0不包含1 -->伪随机数
	cell(x):向上取整
	floor(x):向下取整
	round(x):四舍五入
3. 属性
	PI 圆周率

7.6NUmber

……

7.7String

Released under the MIT License.