JavaScript
概念:
*运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎
*脚本语言:不需要编译,直接就可以被浏览器解析执行了
功能:
*可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验
发展史:
1. 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为:c--,后来更名为:ScirptEase
2.1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript,命名为JavaScript。
3.1996年:微软抄袭JavaScript开发出了JScript语言。
4.1997年:ECMA(欧洲计算机制造商协会),ECMAScript,就是所有客户端语言的标准。
*JavaScript =ECMAScript+BOM+DOM
*ECMAScript:客户端脚本语言的标准
1.基本语法
1.与html结合方式
1.内部JS:定义<script>标签,标签内容就是js代码
2.外部JS:定义<script>标签,通过src属性引入外部的js文件
*注意
1.<script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。
2.<script>可以定义多个。
2.注释:/
3.数据类型:
1.基本数据类型:
1.number:数字。整数/小数/NaN(一个不是数字的数字类型)
2.string:字符串
3.boolean:true和false
4.null:一个对象为空的占位符
5.undefined:未定义。如果一个变量没有给初始化值,则会默认值赋值为undefined
2:引用数据类型:对象
4.变量
*变量:一小块储存数据的内存空间
*Java是强类型语言,JavaScript是弱类型语言
*强类型:在开辟变量储存空间时,定义了空间将来储存数据的数据类型。只能储存固定类型的数据
*弱类型:在开辟变量储存空间时,不定义空间将来的储存数据类型,可以存放任意类型的数据。
*语言:
5.运算符:
1.一元运算符:只有一个运算数的运算符
*++,--;
2.算数运算符
*+,-,*,/,%
3.赋值运算符
*=,+=,-=
4.比较运算符
> ,< ,>= ,<= ,== ,===
5.逻辑运算符
&& || !
6.三元运算符
?:表达式
6.流程控制语句:
1.if else
2.swtich
在Java中,switch语句可以接受的类型:byte int short char 枚举 String
在JS中switch语句可以接受任意类型的语句
3.while
4.do while
5.for
7.特殊语法:
语句以分号结尾,如果一行只有一条语句,分号可以省略。
变量的定义使用var关键字,也可以不使用
*用:定义的变量是局部变量。
*不用:定义的变量是全局变量。
2.基本对象:
Function对象:
1.创建
1.var fun = new Function(形式参数列表,方法体)
2.function 方法名称(形式参数列表){
方法体
}
3.var 方法名 =function(形式参数列表){
方法体
}
2.方法
3.属性:
length:表示形参的个数
4.特点:
1.方法定义时,形参的类型不用写,返回值类型也不写
2.如果定义名称相同的方法,会覆盖
3.在js中,方法的调用只与方法的名称有关,于方法的参数无关。
4.在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有实际的参数
5.调用:
1.方法名称(实际参数列表)
2.Array:数组对象
1.创建:
1.var arr = new Array(元素列表);
2.var arr = new Array(默认长度);
3.var arr = [元素列表]
2.方法:
join():将数组中的元素按照指定的分隔符拼接为字符串
push():像数组的末尾添加一个或更多元素,并返回新的长度
3.属性
length:数组的长度
4.特点
1.js中,数组元素的类型是可变的
2.在js中数组的长度是可变的
2.date:日期对象
1.创建:
var date = new Date();
2.方法:
toLocaleString():返回当前date对象对应的时间本地字符串格式
getTime():获取毫秒值。返回当天日期对象描述的时间到1970年1月1日零点的毫秒差值
3.math:数学对象
1.创建:
*特点:Math对象不用创建,直接使用。Math().方法名
2.方法:
random():0~1之间的随机数(包含0,不包含1)
floor():向下取整
round():把数四舍五入为最接近的整数
ceil():向上取整
3.属性:
4.RegExp:正则表达式对象
1.正则表达式:定义字符串的组成规则
1.单个字符[ ]:
如:[a] [ab] [a-z] [a-zA-Z0-9A]
*特殊符号代表特殊含义的单个字符
\d:单个数字字符[0-9]
\w:单个单词字符[a-zA-Z0-9A]
2.量词符号:
?:表示出现0次或1次
*:表示出现0次或多次
+:表示出现1次或多次
{m,n}:表示 m<=数量<=n
*如果m缺省,表示最多n次
* n 最少m次
3.开始结束符号
^:表示开始
$:表示结尾
\w*:表示单个单词字符出现一次或多次
2.对象:
1.创建:
1.var reg = new RegTex("正则表达式");
2.var reg = /正则表达式/;
2.方法:
1.test(参数):验证指定的字符串是否符合正则定义的规范
*/
var reg = new RegExp("\w{3,12}")
var reg = /^\w{3,12}$/;
var reg = /\\w{3,12}/;
var username = "1"
var flag = reg.test(username);
alert(flag);
5.Global:
1.特点:全局对象。这个Global中封装的方法不需要对象可以直接调用
2.方法:
encodeURI:url编码
decodeURI:url解码
encodeURIComponent:url编码,编码的字符更多
decodeURIComponent:url解码,解码的字符更多
parseInt():将字符串转为数字
*逐一判断每一个字符是否为数字,直到不是数字为止,将前面的数字转为number
isNaN:判断一个值是否为NaN
*NaN六亲不认,连自己都不认,NaN参与的==比较全为false
eval():将JavaScript字符串转为JavaScript脚本执行
3.URL:编码
传智播客:%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2
*/
var str = "传智播客";
var code = encodeURI(str)
document.write(code+"<br>");//%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2
var str2 = "245";
var number = parseInt(str2);
document.write((number+1)+"<br>")
var a =NaN;
document.write((a==NaN)+"<br>");
document.write(isNaN(a));
var str3 = "alert(123)";
eval(str3);