学习js第二天小结
- if-else if ---------适用于区间范围的判断
If(判断条件--一般是boolean类型的值或是关系表达式或是逻辑表达式
){
要执行的代码;
}else if(判断条件){
要执行的代码;
}…
执行过程:先判断if小括号内的条件是否成立,如果成立,就返回true继续执行if大括号内的代码,如果if小括号内的条件不成立,就返回false,然后判断else if括号里的内容,如果成立,同样返回true,继续执行else if大括号内的内容,小括号内的条件不成立就返回false,然后判断下一个else if…
- 三元运算符:
表达式1(关系表达式或是逻辑表达式)? 表达式2:表达式3;
执行过程:先判断表达式1中的内容是否成立,也就是返回true,如果正确则表达式2的值就是整个表达式的结果,如果表达式1的内容不成立,也就是返回false,则表达式3的值就是整个表达式的结果。
- Switch-case ----------适用于定值的判断
switch(值--一般是一个变量或是计算后的定值){
case 值1:
要执行的代码;
break;
case 值2:
要执行的代码;
Break;
Case 值3:
要执行的代码;
Break;
…
Default:
要执行的代码;
Break;
}
执行过程:
当程序执行到switch处,先进入小括号,计算里面值,然后拿着这个定值依次和大括号中case里面的值进行匹配,如果匹配成功,则执行对应的case中的代码,遇到break,则跳出当前swicth-case结构,如果匹配都不成功,则要看结构是否有default,如果有,则执行default中的代码,遇到break跳出结构,如果没有default,则直接跳出swicth-case结构,执行后面的代码。
4.短路运算小结
&& :(找假)
如果两边是布尔类型,则最后返回的值要么是true,要么是false。
例: var a=12>10&&10>14;
Console.log(a);
分析:先判断&&都是布尔类型,左边为true,右边返回false,因为&&是找假的所以最后的结果是false;
如果&&两边都不是布尔类型,会先将两边转化为布尔类型返回,返回的值是false的那一边的操作数。
例:var b=”abc”&&”bcd”;
console.log(b);
分析:先判断&&两边不是布尔类型,但是都是为真的,因为&&是找假的一方返回,所以先判断左边是真,则跳过,此时不管右边是真是假都返回右边的值。结果是bcd.
如果两边都是false值,那么就返回第一个值。
例:var c=NaN&&undefined;
Console.log(c);
分析:先判断&&两边都不是布尔类型,需要转换,都是false,所以返回第一个值,最后的结果是NaN.
|| : (找真)
如果||两边都是布尔类型,则返回的值要么是true要么是false.
Var d=10<10||10<12;
Console.log(d);
分析:首先||两边都是布尔类型,再判断左边为假,右边为真,而||是找真的,所以返回的是右边的布尔值,最后结果为true.
如果||两边都不是布尔类型,则先将左右对象转化成对应的布尔类型的值,然后再返回布尔类型所对应的值。转换之后如果第一个值所对应的布尔值为true,则返回第一个值,否则就返回第二个值。
Var e=”abc”|| “cde”;
Console.log(e);
分析:||左右不是布尔类型,开始转化左右为布尔类型,左边为正,因为||找真,所以直接返回左边的true所对应的值,结果为abc.
逻辑!(非)
如果操作数是对象,返回false
如果操作数是空字符串,返回true
如果操作数是非空字符串,返回false
如果操作数是0,返回true
如果操作数是任意非0值,返回false
如果操作数是null,undefined,NaN,返回true
上面的规则可以简化成
转换为false的值:false、""、0和NaN、null、undefined
5.while
循环: 所谓循环就是重复的做同一件事情
while 循环
while(循环条件){
循环体(要执行的代码);
}
执行过程:当程序 运行到while处,首先进入小括号判断循环条件是否成立,如果成立,也就是值为true,则进入大括号执行里面的循环体,执行完毕之后,再次回到小括号中判断 循环条件是否成立,如果成立则再次进入大括号执行里面的循环体,往复循环。
6.do-while
Do{
循环体;
} while(循环条件)
执行过程:
程序执行到do处,先进入大括号执行里面的循环体,然后带着执行结果到达while的小括号,判断里面的循环条件是否成立,如果成立,则再次进入大括号执行里面的循环体,如果不成立,则跳出当前do-while循环。
Do-while与while的区别:
Do-while至少执行一次循环体,然后再判断 循环条件。
While先判断循环条件,再执行循环体,有可能 一次循环体都不执行。
7.for循环
一般多用于已知次数的循环
for(表达式1;表达式2;表达式3){
循环体;
}
执行过程:
程序运行到for处,进入小括号中,先执行表达式1,声明变量,并赋初值,然后执行表达式2,判断循环条件是否成立,如果条件成立,则进入大括号执行里面的循环体,第一次循环的时候,并不执行表达式3,第一次循环执行完毕之后,执行表达式3,改变循环条件,然后再执行表达式2,判断循环条件是否成立,如果成立,则再次执行循环体,如果不成立,则跳出循环。
循环的嵌套,外层循环循环一次,内层循环n次。
8.break与continue的区别:
Break;
两种用法 :
第一种用在swicth-case 用于跳出当前程序
第二种,是用在循环当中,一般是用while或是for循环当中,与if搭配使用,作用就是立即跳出当前循环,后面的代码都不再执行。
也常见用于死循环的跳出。
While(true){
}
Continue:
一般也是用于循环当中,当遇到continue关键字的时候,立马停止本次循环,然后回到循环条件处,判断 循环条件是否成立,如果成立则继续下一次循环,如果不成立,则退出当前循环。
只结束当前本次循环,continue后面的代码都不再执行。
9.数组
创建数组的两种方式。
// 第一种,用构造函数的方式创建 数组
// var arr=new Array();
// arr[0]=100;
// arr[1]=99;
// arr[2]=98;
// arr[10]=23;
// console.log(arr.length);
// console.log(arr);
// //第二种创建数组
var arr=[12,12,32,true,undefined,"abc",null];
console.log(arr[2]);
console.log(arr[arr.length-1]);
学习js第二天小结的更多相关文章
- 学习js第一天小结
1.JavaScript的书写方式: <script type="text/javascript"> </script> <script sr ...
- 《DOM Scripting》学习笔记-——第二章 js语法
<Dom Scripting>学习笔记 第二章 Javascript语法 本章内容: 1.语句. 2.变量和数组. 3.运算符. 4.条件语句和循环语句. 5.函数和对象. 语句(stat ...
- 学习KnockOut第二篇之Counter
学习KnockOut第二篇之Counter 欲看此 ...
- GopherChina第二天小结
GopherChina第二天小结 今天继续昨天的文章,参加了第二天的GopherChina,例行完成总结. 基于MINIO的对象存储方案在探探的实践 关于对象存储,之前用过seaweedfs,但是对M ...
- Vimtutor(中文版)学习笔记各章小结
在Bash中直接输入 vimtutor 打开新世界!通常阅读完需要25-30分钟不等,像玩游戏一样学会vim,然后爱不释手 里面设置了很多例子通过实践操作来学,这里仅把vimtutor上的每一章小结记 ...
- OO第二单元小结
OO第二单元小结 一.三次作业代码分析. 1.第一次作业 第一次作业是单部电梯的傻瓜调度,由于其过分傻瓜,所以第一次作业我只有两个类,一个main,一个电梯,main类负责不断从输入流中读取命令,如果 ...
- 学习js回调函数
<!DOCTYPE HTML> <html> <head> <meta charset="GBK" /> <title> ...
- 《JavaScript权威指南》学习笔记 第二天 下好一盘大棋
前段学习js的时候总是零零散散的,以至于很多东西都模棱两可.时间稍微一久,就容易忘记.最主要的原因是这些东西,原来学的时候就不是太懂,以至于和其他知识无法形成记忆链,所以孤零零的知识特别容易忘记.重温 ...
- RabbitMQ学习总结 第二篇:快速入门HelloWorld
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
随机推荐
- 持续集成--Jenkins--2
安装sonar Scanner 打开http://www.sonarqube.org/官网 找到下面扫描器 通过这个扫描器可以分析代码分析 因此你也的安装这个扫描器 上传sonar-scanner-2 ...
- ts项目报错:Import sources within a group must be alphabetized
报错:Import sources within a group must be alphabetized. 原因:import名称排序问题,要求按照字母从小到大排序:修改 tslint.json 中 ...
- prop-types:该第三方库对组件的props中的变量进行类型检测
利用prop-types第三方库对组件的props中的变量进行类型检测
- RSA读取密钥——使用openssl编程
RSA是基于数论中大素数的乘积难分解理论上的非对称加密法.在此密码术中,使用公钥(public key)和私钥(private key)两个不同的密钥:公钥用于加密,它是向所有人公开的:私钥用于解密, ...
- ML平台_PAI参考
阿里云机器学习PAI(Platform of Artificial Intelligence)是一款一站式的机器学习平台,包含数据预处理.特征工程.常规机器学习算法.深度学习框架.模型的评估以及预测这 ...
- Sql Server Report Service 的部署问题(Reporting Service 2014為什麼不需要IIS就可以運行)
http://www.cnblogs.com/syfblog/p/4651621.html Sql Server Report Service 的部署问题 近期在研究SSRS部署问题,因为以前也用到过 ...
- oracle中delete、truncate、drop的区别
oracle中delete.truncate.drop的区别 标签: deleteoracletable存储 2012-05-23 15:12 7674人阅读 评论(0) 收藏 举报 分类: ora ...
- Azure ARM (22) 使用Azure PowerShell创建Azure RM VM
<Windows Azure Platform 系列文章目录> 在Azure China获得VM Image,可以执行下面的脚本. Get-AzureRmVMImagePublisher ...
- JGit与远程仓库链接使用的两种验证方式(ssh和https)
JGit是使用JAVA的API来操控Git仓库的库,由Eclipse公司维护.他提供的API分成两个层次,底层命令和高层命令.底层API是直接作用于低级的仓库对象,高层的API是一个面向普通用户级别功 ...
- DB2 Rename SQL0108N错误
今天DB2 Rename的时候遇到了“SQL0108N ‘表名’名称的限定符数是错误的. 语句如下: db2 rename tableA to tableB 异常: SQL0108N The name ...