运算符: | 能够完成数据计算的一组符号比如:+,-,*,/,... ... |
表达式: | 由运算符和操作数所组成的式子叫作表达式,每个表达式都有自己的值 |
15+18;
var a=15;
//a 变量的值为 15,整个表达式的值 也为15
算术运算符
加(+)、减(-)、乘(*) 、除(/) 、求余(% )
-可以表示减号,也可以表示负号,如:x=-y + 可以表示加法,也可以用于字符串的连接
ex: var num1 = 15; var num2 = 18; var str1 = "15";
console.log(num1+num2);//33 console.log(num1+str1);//1515
% : 取余操作,俗称模
作用:取两个数字的余数 ex:
var i = 10 % 3; | //i值为1 |
使用场合:
- 判断数字的奇偶性
- 获取数字的最后几位
- ++ : 自增,在数值的基础上,进行+1操作 -- : 自减,在数值的基础上,进行-1操作
关系运算符作用:
判断数据之间的大小关系
> : 大于
< : 小于
>= : 大于等于
<= : 小于等于
== : 判断等于
注意:不比较类型,只比较数值
!= : 不等于
=== : 全等
注意:除数值之外,连同类型也会一起比较
!== : 不全等关系表达式的运算结果为 boolean类型(true 或 false)
3、关系运算符
var input=prompt("请输入一个数据:"); 判断 input 是否为 数字??
isNaN(数据)
判断一个数据是否为数字:
console.log( isNaN( input ));
逻辑运算符作用:
关联条件 ex:
判断 考试分数 是否在 60 ~ 80 之间
var score = 52;
条件1:score >= 60 条件2:score <= 80
2、逻辑运算符 逻辑与 : &&
逻辑或 : || 逻辑非 : !
关联两个条件,两个条件中,只要有一个为真,那么整个表达式的结果就为真
问题:笔试题和面试题,笔试题或面试题的分数,有一个超过60就认为是合格 var bishi = 52; var mianshi = 82;
条件1:bishi >= 60 条件2:mianshi >= 60
var result = bishi >= 60 || mianshi >= 60;
3、短路逻辑
- 短路&&
如果第一个条件的结果已经为 false 的话,那么就不会再判断第二个条件,那么整个表达式的值,就是 false
如果第一个条件的结果是true的话,则继续判断(执行)第二个条件
(表达式),并且以第二个表达式的值,作为整个表达式的值
- 短路 ||
如果第一个条件的结果已经为 true的话,那么就不会再判断第二个条件,那么整个表达式的值,就是true
如果第一个条件的结果是false的话,则继续判断(执行)第二个条件
(表达式),并且以第二个表达式的值,作为整个表达式的值
另有条件运算符...
函数:函数(function),也可以被称之为方法(method),或者过程(procedure)
是一段预定义好,并可以被反复使用的代码块。其中可以包含多条可执行语句预定义好:事先声明好,但不被执行反复使用:允许被多个地方(元素,函数中)所应用代码块:允许包含多条可执行的代码函数本质上是功能完整的对象
函数的声明:
语法:
function 函数名( ){ 可执行语句; } |
ex :创建一个函数 名称:sayHello,主体功能为,向控制台上 输出一句 Hello World
function printHello( ){ console.log( “hello” ); console.log( “world” ); } |
函数的调用:
执行函数中的内容
任何JS的合法位置处,都允许调用函数
语法:函数名称()
function sayHello( ){ console.log( “hello” ); console.log( “world” ); } |
sayHello( );
定义函数的参数和返回值
转换函数
parseInt(数据);//将指定数据转换为 整数
parseFloat(数据);//将指定的数据转换为 小数 console.log("要打印的话");
1.定义带参数函数
2.带返回值的函数
定义带参数函数:
function 函数名(参数列表声明){
//代码块(函数体,功能体,方法体)
}
参数列表:由一或多个 变量名称来组成
声明函数时定义的参数,可以称之为叫作 "形参"(形式参数) ex:
function printInfo(userName, ueserPwd){
console.log( '用户名:'+userName + '密码:'+userPwd);
}
printlnfo('Tom','123');
在调用函数时所传递的参数值,被称之为"实参"(实际参数)
带返回值的函数:
1、声明
function 函数名(0或多个参数){ //代码块;
return 值;
}
2、调用
var 变量 = 函数名(参数);
function add( num1, num2){ return num1 + num2 ; } |
| ||
| var result = add( 10, 20 ); console.log( result ); | //输出30 |
变量的作用域:
作用域就是变量或函数的可访问范围。它控制着变量或函数的可见性和生命周期
在JS中,变量或函数的作用域可分为:
1、函数作用域,只在当前函数内可访问
2、全局作用域,一经定义,代码的任何位置都可以方式
函数作用域中的变量:
函数作用域中的变量(局部变量)只在当前函数内可访问到,离开此范围就无法访问了。
function add(){ var sum = 1 + 2; | //局部变量 |
console.log( sum ); | //正确 |
} console.log( sum ) ; | //脚本错误 |
全局作用域中的变量:
全局作用域中的变量,称之为 “全局变量”,在代码的任何位置
声明提前:
JS在正式执行之前,会将所有var声明的变量和function声明的函数,预读到所在作用域的顶部但是,对变量的赋值,还保留在原来的位置处
console.log(a); //不会出错,输出undefined var a=100; console.log(a); //100;
var a; //仅声明提前
console.log(a); //undefined a=100; //赋值仍保留在原位置
console.log(a); //100
按值传递:
传参时,实际上是将 实参 复制了一份副本传给了函数。在 函数体内 对变量进行修改,实际上是不会影响到外部的实参变量的
var n=100; //全局变量n
function fun(n){ //参数变量也是局部变量 n-=3; //修改的是局部变量n
console.log(n); //输出的是局部变量n
}
fun(n); //按值传递,方法内输出97; console.log(n); //输出全局变量的值:100
分支结构:
程序=数据加算法
程序的三种结构:
1.顺序结构
2.分支结构
3.循环结构
分支结构就是程序在运行过程中,根据不同的条件,选择执行某些语句
1 、语法 if(条件表达式){
语句块;
}
流程:
|
- if语句,条件位置处,必须为 boolean的值/表达式/变量如果条件不是boolean 类型的话,JS会自动进行转换以下情况,if 都会认为是 false
if(0/0.0/"“/null/undefined/NaN){} 除以上情况外,一律为真
if(1){ console.log("真!");
}
if("我帅吗"){
console.log("真!!!!");
}
- if语句块的{} ,可以被省略的如果省略{},那么if只控制它下面的第一条语句
if-else结构:
语法:if(条件) {
语句块1
}else{
语句块2
}
如果条件为真的话,则执行语句块1中的操作,否则执行语句2中的操作
循环结构:
如果想要执行类似下面的程序:
console.log( 1 + 'hello' ); console.log( 2 + 'hello' ); console.log( 3 + 'hello' );
...
console.log( 100 + 'hello' );
上述功能可以使用循环结构来代替循环,就是一遍又一遍的重复执行相同或者相似的代码。
循环就是反复一遍又一遍的做着相同(相似)的事情
循环中的两大要素:
1、循环条件
什么时候开始,什么时候结束
2、循环操作循环体,循环过程中干了什么
while循环:
语法
while( boolean表达式 ){ 循环体语句; } |
流程:
- 判断条件
- 如果条件为真,则执行循环操作
- 再判断条件,如果为真,继续执行循环操作
...
n、判断循环条件,如果条件为假,则退出循环结构
注:如果循环条件一直为真的话,那么循环就是个死循环,尽量避免死循环的产生。一定要记得更新循环变量(条件)
循环的流程控制:
1.continue关键字
作用:用在循环中,用于终止本次循环,继续执行下次循环
2.break关键字
作用:用在循环中的话,终止整个循环结构!!!
|
|
do-while循环:
do{
可执行语句
} while(boolean表达式)
流程:
先执行循环操作
再判断循环条件
如果条件为真,则继续执行循环操作
如果条件为假,则终止循环即退出循环
特点:无论条件满足与否,至少要执行一次循环操作
while 与 do...while 区别
while
先判断后执行(最少一次循环都不执行)
do...while
先执行,后判断
最少要执行一次循环操作
for循环: (同样至少执行0次)
for (表达式1; 表达式2; 表达式 3) {
循环体语句;
}
for循环执行过程:
- 计算表达式1的值;
- 计算表达式2(boolean表达式)的值,如果为true则执行循环体,否则退出循环;
- 执行循环体;
- 执行表达式3;
- 计算表达式2,如果为true则执行循环体,否则退出循环;
- 如此循环往复,直到表达式2的值为false。
while循环与for循环的区别:
for (表达式1; 表达式2; 表达式3) {
循环体语句;
}
for循环执行过程:
- 计算表达式1的值;
- 计算表达式2(boolean表达式)的值,如果为true则执行循环体,否则退出循环;
- 执行循环体;
- 执行表达式3;
- 计算表达式2,如果为true则执行循环体,否则退出循环;
- 如此循环往复,直到表达式2的值为false。
for,while,do-while 之间的区别
for,while
最少执行0次
while多用于不确定循环次数时使用
for多用于确定循环次数时使用
do...while
最少执行一次
适合用于不确定循环次数时使用
函数的声明