javascript:
基于浏览器
基于对象
事件驱动
脚本语言
由:
javascript: ECMAscript(ES) DOM文档对象模型 BOM浏览器对象模型,三部分组成
使用js的三种方式
1.HTML标签中内嵌js:<button ondblclick="javascript:alert('ssas')">点我呀!!!</button>
不建议使用
2.在HTML页面中直接使用:
<script type="text/javascript">
//js代码
</script>
3.引用外部js文件:
<script language="JavaScript" src=""></script>
[注意事项]
①.页面中js代码与引用js代码可以嵌入到页面的任何位置,但是位置不同,会影响到js代码的执行顺序;
例如<script></script>在body前面会在页面加载之前执行js代码
②.页面中js代码使用type属性引用外部的js文件使用的是language。
③.引用外部js文件的script标签必须成对出现,且标签内部不能有任何代码
赋值:
使用var声明变量只在当前函数作用域有效
不使用var,直接赋值生成的变量,默认为全局变量,整个js文件有效
var a,b,c=1;同一声明语句,同时声明多个变量,变量之间用英文逗号,分隔。
变量的命名规范:
①变量名只能有字母数字_$组成
②开头不能是数字
③变量区分大小写,大写与小写为不同变量
js中的变量的数据类型
undefined:未定义,用var声明的变量,没有进行初始化赋值 var a
null:表示空的引用。 var a = null
boolean:真假,可选值 true/false
number:数值类型,可以是小数,也可以是整数
string:字符串类型。用""或''包裹的内容称为字符串。
object(复杂数据类型)
js中的输出语句:
输出语句,将write的()中的内容打印在浏览器屏幕上;
* 使用时注意:除变量/常量以外的任何内容,打印时必须放到""中。变量/常量必须放到""外
* 打印的内容同时有多部分组成时,之间用+连接
弹窗输出: alart()
弹窗输入:promp()
运算符的优先级
()
! ++ --
% / *
+ -
> < >= <=
== !=
&&
||
各种赋值= += *= /= %=
分支结构:
if-else结构
if()中的表达式,运算之后的结果应该为:
① boolean:true 真 false 假
② 字符串:非空字符串为真 空字符串为假
③ Number:0为假 非0均为真
④ Null/NaN/Undefined:全是假
⑤ Object类型:全是真
多重if,阶梯if
多重if结构中,各个判断条件是互斥的!只能选择其中一条路
嵌套if结构
if结构可以多重嵌套,但是原则上不超过3层
switch-case结构
注意事项:
① switch()中的表达式以及每个case后面的表达式可以为任何js支持的数据类型(对象和数组不行);
② case后面的所有常量表达式,必须各不相同,否则只会执行第一个;
③ case后面的常量可以是任何数据类型(对象和数组不行);同一个switch结构的不同case,可以是多种不同的数据类型
④ switch在进行判断的时候,采用的是全等判断
⑤ break的作用:执行完case代码后,跳出当前switch结构;
若缺少break的后果:从正确的case项开始,依次执行所有的case和default
⑥ switch结构在判断时,当遇到正确的case项后将会不再判断后续项目。依次向下执行
⑦ switch结构的执行速率要快于多重if结构。在多路分支时,可优先考虑使用switch结构
循环结构:
for循环
for循环有三个表达式,分别为:
①定义循环变量
②判断循环条件
③更新循环变量
三个表达式之间用;分隔
1. for循环三个表达式均可省略,但是两个;缺一不可
2.for循环特点:先判断,再执行
3.for循环三个表达式,均可有多部分组成,之间用,分隔。但是第二部分判断条件需要用&&连接,最终结果为真/假
while循环
先判断,再执行
do-while循环
先执行,再判断;即使初始条件不成立,do-while也至少循环1次