1.JS的组成
2.JS基本语法
2.1 变量
ECMAScript的变量是松散类型(可以用来保存任何类型的数据)
每个变量仅仅是一个用于保存值的占位符而已。
变量声明
一次性声明多个变量
var name="Tom",age=18,major="CS";
2.2 数据类型
Undefined类型
未初始化变量。
null类型
null值表示一个空指针对象。
如果一个变量将来要存储一个对象,初始化时可以暂且初始化为null
注::undefined
值是派生自null
值的,所有undefined==null
的返回结果时true
.
Number类型
Number表示整数和浮点数。
NaN(not a number):非数值,是一个特殊的值。NaN也是Number类型,任何涉及NaN的操作都会返回NaN,NaN与任何值都不相等,包括
NaN本身。
isNaN(n)方法:检测n是否是“非数值”,返回值为布尔型。isNaN()对其参数先尝试转换为数值,再检测是否为非数值。
数值转换:Number()(强制转换)、parseInt()、parseFloat()(必须以数字开头,例如“58px”可以转换为58)
String类型
字符串。
toString()方法:返回字符串副本。
String()方法:能够将任何类型的值转换为字符串。
Boolean类型
true
真
false
假
布尔类型的转换:把除0外的所有数字转换为布尔型,都是true
;把除了空字符串的字符串转换为布尔型都是true
;null
和unidefined
转换为布尔型为false
。
2.3 表达式
操作符
算数操作符:+ - * / % ++ --
赋值操作符:= += -= *= /= %=
比较操作符:
> < >= <=
==
相等,只比较值
===
全等,比较值的同时比较数据类型是否相等
!=
不相等,比较值是否不相等
!==
不全等,比较值的同时比较数据类型是否不相等
三元操作符:
条件?执行代码1:执行代码2
如果条件成立,执行代码1,否则执行代码2
逻辑操作符:&& || !
逻辑与&&
注意:在有一个操作数不是布尔值的情况,逻辑与操作就不一定返回值,此时它遵循以下规则:
(1)如果第一个操作数隐式类型转换后为true,则返回第二个操作数
(2)如果第一个操作数隐式类型转换后为false,则返回第一个操作数
(3)如果第一个操作数是null,则返回null
(4)如果第一个操作数是NaN,则返回NaN
(5)如果第一个操作数是undefined,则返回undefined
80 && 55 //55
"hello" && 65 && "abc"//abc
逻辑或||
注意:在有一个操作数不是布尔值的情况,逻辑与操作就不一定返回值,此时它遵循以下规则:
(1)如果第一个操作数隐式类型转换后为true,则返回第一个操作数
(2)如果第一个操作数隐式类型转换后为false,则返回第二个操作数
(3)如果第一个操作数是null,则返回null
(4)如果第一个操作数是NaN,则返回NaN
(5)如果第一个操作数是undefined,则返回undefined
80 || 55 //80
"hello" || 65 || "abc"//hello
""|| 88 || "abc"//88
""|| 0 || "abc"//abc
逻辑非!
无论操作数是什么类型,返回值都是布尔型。
!! 同时使用两个逻辑非操作符时,第一个逻辑非操作会基于无论什么操作数返回一个布尔值,第二个逻辑非则对该布尔值求反。
2.4 流程控制
2.4.1 分支语句if
var age=15;
if(age<18){
alert("您还没有成年!”);
}
扩展
可用prompt()方法弹出一个输入对话框获取用户输入
age=prompt("请输入您的年龄:”);
2.4.2 switch
获取星期:new Date().getDay()
,返回值为0-6的整形数字。
向浏览器输出内容:document.write("内容")
var week=new Date().getDay();
//console.log(week);
switch(week){
case 0:
document.write("<h1>今天是星期天</h1>");
break;
case 1:
document.write("<h1>今天是星期一</h1>");
break;
case 2:
document.write("<h1>今天是星期二</h1>");
break;
case 3:
document.write("<h1>今天是星期三</h1>");
break;
case 4:
document.write("<h1>今天是星期四</h1>");
break;
case 5:
document.write("<h1>今天是星期五</h1>");
break;
case 6:
document.write("<h1>今天是星期六</h1>");
break;
}
2.4.3 for循环
略
2.4.4 while循环
略
2.5 函数
2.5.1 函数的定义
语法:
function 函数名(参数列表){
语句;
}
2.5.2 函数的调用
语法:函数名(参数)
<!DOCTYPE html>
<html>
<head>
<title>练习网页</title>
</head>
<body>
<script type="text/javascript">
function showDay(){
var week=new Date().getDay();
//console.log(week);
switch(week){
case 0:
document.write("<h1>今天是星期天</h1>");
break;
case 1:
document.write("<h1>今天是星期一</h1>");
break;
case 2:
document.write("<h1>今天是星期二</h1>");
break;
case 3:
document.write("<h1>今天是星期三</h1>");
break;
case 4:
document.write("<h1>今天是星期四</h1>");
break;
case 5:
document.write("<h1>今天是星期五</h1>");
break;
case 6:
document.write("<h1>今天是星期六</h1>");
break;
}
}
showDay();//函数调用
</script>
</body>
</html>
函数的参数
arguments对象:所有的参数保存在arguments对象中,它有与数组类似的使用方法,因此,定义函数是可以不写参数列表,但调用时却可以传入参数。
function inner(){
alert(arguments[0]);//0
alert(arguments[1]);//1
alert(arguments[2]);//undefined
}
inner(0,1);