六、运算符与表达式
算术运算符 + - * / % ++ --
+ 加法
+ 连接2个字符串
注意 10+5+*abc*+20=?
% 取余 余数的符号与前的数有关【弱类型允许浮点数取余】注意:浮点数取余得到的是浮点数
b=a++ 先赋值(先把a的值赋给b),然后a自增1
b=++a 先a自增1,然后再整个结果赋值给b
赋值运算符 = += -= *= /= %= a+=5 <==> a=a+5
条件运算符 > < == >= <= != === !==
比较两边最好使用相同类型,比较完之后为布尔型
逻辑运算符 && || ! ^
a&&b a为true且b也为true ,整个表达式为true
逻辑与(&&)短路:如果a为假,那么b不执行
a||b a,b只要有一个为true,整个表达式为true
逻辑或(||)短路:如果a为真,那么b不执行
!a a为true表达式为false,a为false表达式为true
a^b a和b不同的时候表达式为true
什么为假:false、0、0.0、**、null
注:*0*为真;未声明变量什么也不是
//位运算 & | >> >>> <<
其他运算符 三元运算符 条件表达式?表达式1:表达式2 如果条件表达式为真,整个表达式的值为表达式1,否是就为表达式2
七、流程控制
顺序结构
默认:从上往下
分支结构
1.单分支
if(bool){
}
2.双分支
if(bool){
}else{
}
3.多分支
if(bool){
}else if(){//else与if必须分开
}
....
else{
}
范围比较多使用if分支
switch(变量){
case 值1:
表达式
break;
....
[default:]
}
单个值比较多使用switch分支
4.嵌套分支
if(bool){
if(bool){
...
}
}else{
if(bool){
...
}
}
循环结构
while
while(条件表达式){
代码段(一条或多条)
}
当条件表达式为真的时候,执行代码段
代码段有可能不知道
do...while
do{
代码段(一条或多条)
}while(条件表达式)
代码段至少会执行一次
for
for(赋值表达式;条件表达式;循环变量变化){
代码段(一条或多条)
}
循环嵌套
首先
退出、中止循环 break、continue
注意:退出双层循环
st:
for(var i=1;i<10;i++){
for(var j=1;j<=i;j++){
break st;//退出双层循环 与goto语法不同
document.write(j+*×*+i+*=*+(j*i)+* *);
}
document.write(*<br />*);
}
1 2 3 4 5 6 7 8 9 10
11 20
21.. 30
onmouseover onmouseout
八、函数
1.什么是函数
2.如何声明函数
3.如何使用函数
是一段完成*指定功能*已命名的代码段。
函数只用*调用*才能使用,调用:就是通过名称[可以再声明之前,也可以再声明之后]
function 函数名([参数1,参数2...]){
功能段(一条,或多条)
[return 值] //返回到哪:谁调用就返回哪
}
形参,实参
返回值(可选)
函数名不加(),代表函数本身[可以看做数据类型,也可以看做变量]
var a=function(){}
函数没有默认参数
回调函数:函数作为参数
1.函数的作用 --决定去不去用
2.函数的参数 --决定怎么用
3.返回值 --决定调用后如何处理
注:写函数注释的时候,应该写好这3个方面的信息
全局变量
函数外面声明的变量是全局变量
var a=10;
函数里面声明的变量是局部变量
系统函数
Global 对象
escape 方法 | eval 方法 | isFinite 方法 | isNaN 方法 | parseFloat 方法 | parseInt 方法 | unescape 方法
九、对象
1)什么是对象
2)如何声明对象
3)如何使用对象
1.基于对象的操作方式(所有的操作都是对象形式)
2.将相关的操作使用一个对象完成,看做是一个整体
对象中存的内容
一、属性(变量)
二、方法(函数)
都是和这个对象相关的
一、对象的声明
二、对象的使用
三、系统对象的使用
步骤:
1.找到对象
2.实例化对象
3.操作对象
对象实例.属性 (取值,赋值) 属性不能变量
对象实例[*属性*] 属性可以是变量
对象实例.方法()
自定对象
声明对象的方法
第一种:
function Play(){
}
var p=new Play();
//属性
p.width=300;
//方法
var p.autoPlay=function(){
alert(*#######*);
}
第二种:
var p=new Object();
//属性
p.width=300;
//方法
var p.autoPlay=function(){
alert(*#######*);
}
第三种:
function Play(){
var p=new Object();
//属性
p.width=300;
//方法
var p.autoPlay=function(){
alert(p.width);//alert(this.width)
alert(*#######*);
}
return p;
}
第四种:只有属性
{属性1:值1,属性2:值2...}
遍历
for(变量 in 对象){
}
var p=Play();
var pro=**;
for(pro in p){
alert(pro);
}
for(pro in p){
alert(p[pro]);
}
with(对象){
所有方法如果不加对象都是括号中对象的方法
}
document.write(*<table>*);
document.write(*<tr>*);
document.write(*<td>*);
document.write(*</td>*);
document.write(*</tr>*);
document.write(*</table>*);
width(document){
write(*<table>*);
write(*<tr>*);
write(*<td>*);
write(*</td>*);
write(*</tr>*);
write(*</table>*);
}
var str=new String(*abc*);<==>var str=*abc*;
数学对象不需要new
十、内置JS对象
字符串对象
数学对象
Math.random();
<META http-equiv="refresh" content="2">
数组
时间对象
算术运算符 + - * / % ++ --
+ 加法
+ 连接2个字符串
注意 10+5+*abc*+20=?
% 取余 余数的符号与前的数有关【弱类型允许浮点数取余】注意:浮点数取余得到的是浮点数
b=a++ 先赋值(先把a的值赋给b),然后a自增1
b=++a 先a自增1,然后再整个结果赋值给b
赋值运算符 = += -= *= /= %= a+=5 <==> a=a+5
条件运算符 > < == >= <= != === !==
比较两边最好使用相同类型,比较完之后为布尔型
逻辑运算符 && || ! ^
a&&b a为true且b也为true ,整个表达式为true
逻辑与(&&)短路:如果a为假,那么b不执行
a||b a,b只要有一个为true,整个表达式为true
逻辑或(||)短路:如果a为真,那么b不执行
!a a为true表达式为false,a为false表达式为true
a^b a和b不同的时候表达式为true
什么为假:false、0、0.0、**、null
注:*0*为真;未声明变量什么也不是
//位运算 & | >> >>> <<
其他运算符 三元运算符 条件表达式?表达式1:表达式2 如果条件表达式为真,整个表达式的值为表达式1,否是就为表达式2
七、流程控制
顺序结构
默认:从上往下
分支结构
1.单分支
if(bool){
}
2.双分支
if(bool){
}else{
}
3.多分支
if(bool){
}else if(){//else与if必须分开
}
....
else{
}
范围比较多使用if分支
switch(变量){
case 值1:
表达式
break;
....
[default:]
}
单个值比较多使用switch分支
4.嵌套分支
if(bool){
if(bool){
...
}
}else{
if(bool){
...
}
}
循环结构
while
while(条件表达式){
代码段(一条或多条)
}
当条件表达式为真的时候,执行代码段
代码段有可能不知道
do...while
do{
代码段(一条或多条)
}while(条件表达式)
代码段至少会执行一次
for
for(赋值表达式;条件表达式;循环变量变化){
代码段(一条或多条)
}
循环嵌套
首先
退出、中止循环 break、continue
注意:退出双层循环
st:
for(var i=1;i<10;i++){
for(var j=1;j<=i;j++){
break st;//退出双层循环 与goto语法不同
document.write(j+*×*+i+*=*+(j*i)+* *);
}
document.write(*<br />*);
}
1 2 3 4 5 6 7 8 9 10
11 20
21.. 30
onmouseover onmouseout
八、函数
1.什么是函数
2.如何声明函数
3.如何使用函数
是一段完成*指定功能*已命名的代码段。
函数只用*调用*才能使用,调用:就是通过名称[可以再声明之前,也可以再声明之后]
function 函数名([参数1,参数2...]){
功能段(一条,或多条)
[return 值] //返回到哪:谁调用就返回哪
}
形参,实参
返回值(可选)
函数名不加(),代表函数本身[可以看做数据类型,也可以看做变量]
var a=function(){}
函数没有默认参数
回调函数:函数作为参数
1.函数的作用 --决定去不去用
2.函数的参数 --决定怎么用
3.返回值 --决定调用后如何处理
注:写函数注释的时候,应该写好这3个方面的信息
全局变量
函数外面声明的变量是全局变量
var a=10;
函数里面声明的变量是局部变量
系统函数
Global 对象
escape 方法 | eval 方法 | isFinite 方法 | isNaN 方法 | parseFloat 方法 | parseInt 方法 | unescape 方法
九、对象
1)什么是对象
2)如何声明对象
3)如何使用对象
1.基于对象的操作方式(所有的操作都是对象形式)
2.将相关的操作使用一个对象完成,看做是一个整体
对象中存的内容
一、属性(变量)
二、方法(函数)
都是和这个对象相关的
一、对象的声明
二、对象的使用
三、系统对象的使用
步骤:
1.找到对象
2.实例化对象
3.操作对象
对象实例.属性 (取值,赋值) 属性不能变量
对象实例[*属性*] 属性可以是变量
对象实例.方法()
自定对象
声明对象的方法
第一种:
function Play(){
}
var p=new Play();
//属性
p.width=300;
//方法
var p.autoPlay=function(){
alert(*#######*);
}
第二种:
var p=new Object();
//属性
p.width=300;
//方法
var p.autoPlay=function(){
alert(*#######*);
}
第三种:
function Play(){
var p=new Object();
//属性
p.width=300;
//方法
var p.autoPlay=function(){
alert(p.width);//alert(this.width)
alert(*#######*);
}
return p;
}
第四种:只有属性
{属性1:值1,属性2:值2...}
遍历
for(变量 in 对象){
}
var p=Play();
var pro=**;
for(pro in p){
alert(pro);
}
for(pro in p){
alert(p[pro]);
}
with(对象){
所有方法如果不加对象都是括号中对象的方法
}
document.write(*<table>*);
document.write(*<tr>*);
document.write(*<td>*);
document.write(*</td>*);
document.write(*</tr>*);
document.write(*</table>*);
width(document){
write(*<table>*);
write(*<tr>*);
write(*<td>*);
write(*</td>*);
write(*</tr>*);
write(*</table>*);
}
var str=new String(*abc*);<==>var str=*abc*;
数学对象不需要new
十、内置JS对象
字符串对象
数学对象
Math.random();
<META http-equiv="refresh" content="2">
数组
时间对象