JavaScript
1.概念
一门客户端脚本语言
- 运行在客户端浏览器中。每一个浏览器都有JavaScript的解析引擎
- 脚本语言:不需要编译,直接就可以被浏览器解析执行了
2.功能
- 可以来增强用户和HTML页面的交互过程,可以来控制HTML元素,让页面有一些动态的效果,增强用户的体验。
3.JavaScript发展史
- 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为:C--,后来更名为:ScriptEase
- 1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript。请来SUN公司的专家,修改LiveScript,命名为JavaScript
- 1996年,微软抄袭JavaScript开发出JScript语言
- 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文件吧
注意:
- < script>可以定义在html页面的任何地方,但是定义的位置会影响执行的顺序。
- < script>可以定义多个。
4.2注释
4.2.1单行注释
// 注释内容
4.2.2多行注释
/* 注释内容 */
4.3数据类型
4.3.1原始数据类型(基本数据类型):
- number:数字。 整数/小数/NaN(not a number ( 一个不是数字的数字类型)
- string:字符串。 字符串 'abc' "a"
- boolean:true和false
- null:一个对象为空的占位符
- undefined:未定义。如果一个变量没有给初始化值,则会被默认为undefined
4.3.1引用数据类型:对象
4.4变量
变量:一小块存储数据的内存空间
Java语言是强类型语言,而JavaScript是弱类型语言
强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据。
弱类型:在开辟变量存储空间时,不定义空间将来存储的数据的数据类型。可以存储任意类型的数据。
语法:var 变量名 = 初始化值;
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特殊语法
语句以;结尾,如果一行只有一条语句,则可以省略
变量的定义使用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
……