JavaScript--总结二(流程控制+调试)
表达式和语句
表达式------
一个表达式可以产生一个值,有可能式运算,函数调用,有可能是字面量。表达式可以放在任何需要值的地方
语句-----
语句可以理解为一个行为,循环语句和判断语句就是典型的语句,一个程序有很多个语句组成,一般情况下;分割一个一个的语句
流程控制(代码的执行过程)
三种方式:
- 1.顺序结构---从上到下,从左到右执行的顺序
2.分支结构---if语句,if-else语句,if-else if-else if...语句,switch-case语句,三元表达式语句
if语句
语法结构
if (/* 条件表达式 */) {
// 执行语句
} if (/* 条件表达式 */){
// 成立执行语句
} else {
// 否则执行语句
} if (/* 条件1 */){
// 成立执行语句
} else if (/* 条件2 */){
// 成立执行语句
} else if (/* 条件3 */){
// 成立执行语句
} else {
// 最后默认执行语句
}
三元运算符
表达式1 ? 表达式2 : 表达式3
是对if……else语句的一种简化写法
switch语句
break可以省略,如果省略,代码会继续执行下一个case
switch语句在比较值时使用的是全等操作符,因此不会发生类型转换(例如:字符串“10”不等于10)
分支语句总结###
1.if语句:一个分支
2.if-else语句:俩个分支,最终只执行一个
3.if-else if-else if-else if...语句:多个分支,最终只执行一个
4.switch-case语句:多分支语句,最终也会一个(必须要有break的情况下)
5.三元表达式:和if-else语句一样
一般对范围的判断时--使用if-else if....
一般对具体的值的判断---使用switch-case语句
布尔类型的隐式转换
流程控制语句会把后面的值隐式转换成布尔类型
转换为true 非空字符串 非0数字 true 任何对象
转换成false 空字符串 0 false null undefinedvar message;
// 会自动把message转换成false
if (message) {
// todo...
}
3.循环结构---while循环,do-while循环,for循环,for-in循环
循环:一件事不断的或者重复的执行
循环需要有结束的条件,循环还应该有计时器(记录循环的次数)
while循环
语法:
计时器
var 变量=0;
while(循环的条件){
循环体;
计数器++;
}
执行过程:先判断条件是否成立,条件结果是true还是false,如果是false,那么循环的代码(while大括号中的代码全部不执行),如果为true,那么执行while里的代码循环体,再执行计时器,再次判断...直到不满足条件,退出结束循环体。
do...while循环
语法:
var i=0;----计时器
do{
循环体
计时器++
}while(条件);
执行过程:先执行一次循环体,然后判断条件是否成立,不成立,则跳出循环;成立则执行循环体,然后再判断条件是否成立,成立则继续循环,直到不满足条件则跳出
while和do-while区分特点
while:先判断后循环,有可能一次循环体都不执行
do-while:先循环后判断,至少要执行一次循环体
for循环
while和do...while一般用来解决无法确认次数的循环。for循环一般在循环次数确定的时候比较方便
语法:
// for循环的表达式之间用的是;号分隔的,千万不要写成,
for (初始化表达式1; 判断表达式2; 自增表达式3) {
// 循环体4
}
执行顺序:1243--243--243(直到循环条件变成false)
1--初始化表达式
2--判断表达式
3--自增表达式
4--循环体
continue和break
break:立即跳出整个循环,即循环结束,开始执行循环后面的内容(直接跳到大括号)
continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)
调试
过去调试JS的方式
alert();
console.log();
断点调试
点调试是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。
最新文章
- Scalaz(23)- 泛函数据结构: Zipper-游标定位
- 初始maven
- HDU5441 Travel 并查集
- WP开发笔记——WP APP添加页面跳转动画
- logstash grok 解析Nginx
- Mac下搭建SVN服务器
- javascript系列之执行上下文
- leetcode第23题--Swap Nodes in Pairs
- python进程池剖析(二)
- Delphi 与 DirectX
- openvswitch 2.7 安装过程记录 总结
- 【AO笔记】有关使用AO基于shp文件创建网络数据集的一个细节
- Angular4学习笔记(七)- ViewChild和ViewChildren
- 用powershell 批量卸载 windows 更新
- B1003. 我要通过!
- Altium Designer PCB的时候 高亮显示引脚连线
- ThinkPHP5与JQuery实现图片上传和预览效果
- python ftp文件夹文件递归上传推送
- 对股市骗子内部的一次apt测试
- web_custom_request和web_submit_data
热门文章
- day2(RESTful风格API)
- .Net Core JWT 动态设置接口与权限
- moviepy音视频剪辑:与time时间线相关的变换函数freeze_region、make_loopable、speedx、time_mirror、time_symmetrize介绍
- 第15.46节、PyQt显示部件:OpenGL Widget部件功能简介及使用案例
- JAVA环境安装及其配置
- mac中nvm的安装和使用
- echarts饼图默认状态高亮显示
- Windows版 charles安装证书抓包网页HTTPS
- Java8新特性探索之新日期时间库
- 【opencv】学习笔记