JavaScript
第 一 部 分
一.定义
基于浏览器的语言;
基于面向对象;c语言面向过程,java面向对象:继承,封装,多态;
事件驱动;
脚本语言;
二.作用:
表单验证,减轻服务端的压力;
添加页面动画效果;
动态更改页面内容;
AJax网络请求;
三.组成部分:
ECMAScript;脚本程序语言, 语言标准ES5.1,最新ES6.0;
语法,变量和数据类型,
DOM; 文档对象模型 ;文档节点
BOM浏览器对象模型window:history,doucument,location
四.javaScript基本结构:
<script type="text/javascript">
javascript语句
</script>
五.使用JS的三种方式:
1.HTML标签中的内嵌JS;(不提倡使用)
2.HTML页面中直接使用JS;
<script type="text/javascript">
javascript语句
</script>
3.引用外部JS文件;
<script language="JavaScript" src="">
</script>
【注意事项】
1.页面中JS代码与引用JS代码,可以嵌入到HTML的任何位置,但是位置不同会影响到JS代码的执行顺序;
例如:<script>在body前面,会在页面加载之前执行JS代码;
2. 页面中的JS代码,使用type="text/javascript";
3.引用外部JS文件,使用language="JavaScript";
引用外部JS文件的<script><script>标签,必须成对出现,且标签内部不能有任何代码;
单行注释ctrl+/
段落注释ctrl+shift+/
六.JS中声明变量的写法:
1.写法:
var width=10;//使用var生命的变量,只在当前函数作用域有效;
width=11;//不使用var直接赋值生成的变量,默认为全局变量,整个JS条件有效;
var a,b,c=1; 同时声明多个变量,变量之间用英文,分割,但是,复制需要单独赋值,例如上式中,只有c=1,ab:undefined;
2.变量的命名规范:
字母数字下划线_和$符号;
区分大小写,大小写字母为不同变量;
3.变量名要符合驼峰法则 :
变量开头为小写,,之后每个首字母大写(单词之间用下划线分割)
例如:jiang_hao_shi_shuai_ge
JiangHaoShiShuaiGe
4.JS中变量的数据类型:
undefined:未定义,用var声明的变量,没有进行初始化赋值;
Null:表示为空的引用;
number;
Boolean:真假,可以是小数,也可以是整数;
String:用“”或‘’包裹的内容,成为字符串;
object:(复杂数据类型:函数,数组)
5.常用的数值函数:
① isNaN():用于判断一个变量或常量是否为NaN(非数值)。
使用isNaN判断时尝试使用number()函数进行转换,如果能够转换为数字,则不是非数值,结果为false;
“111”纯数字字符串,false
“” 空字符串,false
“la”包含其他字符,true
true/false 布尔类型,false
② number():将其他类型转换成数值类型
【字符串类型转数值】
①.字符串为纯数值字符串时,会转为对应的数字“111”-->111;
②字符串为空字符串时,会转为0,“”-->0;
③ 字符串包含其他非数字字符时,不能转换,“111a”-->NaN;
【布尔类型转数值】
true->1;fulse->0;
【Null/undefined专数值】
Null->0,undefined->NaN;
[object类型转数值]
(以后在了解) 先调用valueof函数,确定函数是否有返回值,再根据上述各种情况判断;
parseInt:将字符串转换成数值;
①.空字符串不能转,结果为NaN;""->NaN;
②.纯数字能转,小数点后面除掉;123->123;123.45->123;
③.包含其他字符,会截取第一个非数值字符前的数值部分。
"123a456"->123;"a123a234"->NaN;
④.parseInt只能转string类型:Boolean/null/undefined均为NaN;
parseFloat:将字符串转换成数值;
使用方式同parseInt,但是当转化小数时保留小数点;转化整数时保留整数;
123.5->123.5; 123->123;
typeof检测变量的数据类型
未定义->undefined
字符串->string;
true/false->boolean;
数值->number;
对象/null->object;
函数->function;
【声明变量注意事项】:
1.JS中所有变量类型声明,均使用var关键字,变量的具体数据类型,取决于给变量赋值的执行;
2.同一变量可以在不同赋值时,修改变量的数据类型
var width=10; 变量为整形;
width="哈哈"; 变量被改为字符串;
3变量可以使用var声明,也可以省略;【区别】是否为全局变量;
4.同一变量名可以多次用var声明,但是并无任何含义,也不会报错,第二次之后的声明,只会被理解为赋值
JS中的输出语句
* document.write():输出语句,将write中的内容打印在浏览器屏幕上;
* [使用时注意]:除变量、常量以外的内容,打印时必须放到“”中;变量常量必须放到“”外;
* 打印的内容有多部分组成时,之前用+链接;
* 例如:document.write("左手中的纸牌:"+left+“<br/>”)
第二部分
一.【算术运算】
+ 加、- 减、* 乘、 / 除、 % 取余、++ 自增、-- 自减
+:有两种作用,链接字符串/加法运算;
当+两边均为数字时,进行加法运算,当任意一边有字符串时,连接字符串,连接之后的结果仍为字符串;
/:结果是多少就是多少;
%:取余数;
++:自增运算符,变量在原来的基础上+1;--:同理;
=:赋值;
+=:a+=5——>a=a+5;
-=:a-=5——>a=a-5;前者的执行效率快;
二、【关系运算】:
== 、=== !=、>、<、>=、<=
==:等于;类型相同,同===,类型不同,将等式两边类型不同时,先用number()转换成数值类型,在判断
null==undefined 成立;null===undefined不成立
===严格等于;类型不同,直接返回false,类型相同,在进行下一步判断;
条件运算符(多目运算):a>b?true:false
当?前面的部分运算结果为true时,执行:前面的代码,当?前面的部分运算结果为false时,执行:后面的代码;
可以多层嵌套;例如:var jiegao=num>5?"大了":(num=5?"蒙对了":"小了");
【运算符的优先级】
()
! ++ --
* / %
+ -
> < <= >=
== !=
&&
||
各种赋值:= += /= *=
第 三 部 分
一.[if-else]写法:
if(判断条件){
//条件为true时执行;
}
else{
//条件为false时执行;
}
if()中的表达式,运算之后的结果应改为:
Boolean:true真 false假
String,非空字符串为真,空字符串为假;
Null/NaN/Undefined:全为假;
Object:全为真;
else{}结构根据具体情况可省略;
二.【多层if、阶梯if】
1、结构写法:
if(条件一){
条件一成立
}
else if(条件二){
条件一不成立&&条件二成立
( else if可以有多个 )
}
else{
条件一不成立&&条件二也不成立
}
2、多重if结构中,各个判断条件是互斥的,只能选择其中一条路;
3、if-else的{}可以省略,但不提倡,
如果省略{},则,if/else结构包含的代码,仅为其后最近的一行(分行结束);
如果省略{},则,else结构永远属于其前方最近的if结构;
三.【嵌套if结构】
1、写法:
if(条件一){
条件一成立
if(条件二){
条件一成立,条件二也成立
}
}
else{
条件一不成立
}
四.【switch分支结构】
1.结构写法:
switch(表达式){
case 常量表达式1: 语句1; break;
case 常量表达式2:语句2; break;
defalt: 语句;break;
}
【注意事项】:
①switch()中的表达式,以及每个case后面的表达式,(对象和数组不行)可以为任何js支持的数据类型;
②case后面的所有常量表达式必须各不相同,否则只会执行第一个;
③case后的常量可以是任何数据类型,同一个switch结构的不同case可以是多种不同的数据;
④switch结构在进行判断的时候,采用的是全等判断===;
⑤break的作用:执行完case代码后跳出当前switch结构;
缺少break的后果:从正确的case项开始依次执行所有的case和defalt
⑥switch结构在判断时,只会判断1次正确答案,当遇到正确的case项后,将会不在判断后续case项;
switch的结构执行速率要快于多重if结构,在多路分支时,可优先考虑switch结构;
五.循环结构
循环结构的步骤:
1声明循环变量
2判断循环条件
3执行循环体(while中{})操作
4更新循环变量
然后,循环执行2,3,4
【js中循环结构中支持的数据类型】
Boolean:true真 false假;
String,非空字符串为真,空字符串为假;
number():0为假,一切非0全为真
Null/NaN/Undefined:全为假;
Object:全为真;
while 循环特点:先判断,在执行;
do-while:限执行,再判断,即便初始条件不成立,do-while循环至少也执行一次
【for循环】: 先判断再执行
三个表达式均可由多部分组成,之间用逗号组成,但是第二部分的判断条件需要用&&链接,最终条件需要为真/假.
for(表达式1,表达式2,表达式3){
语句;
}
1,定义循环变量;
2.判断循环条件;
3,更新循环变量;
三个表达式均可省略,但是两个;不能省;
例如: