摘要:语句变量概念变量提升标识符注释区块条件语句结构结构结构三元运算符循环语句循环循环循环语句和语句标签参考链接语句和表达式以分号结束的是语句,表达式加分号没有意义语句是为了完成某任务的操作。
1.语句
2.变量
2.1概念
2.2变量提升
3.标识符
4.注释
5.区块
6.条件语句
6.1if 结构
6.2if...else 结构
6.3switch 结构
6.4三元运算符 ?:
7.循环语句
7.1while 循环
7.2for 循环
7.3do...while 循环
7.4break 语句和 continue 语句
7.5标签(label)
参考链接
1.语句和表达式
以分号结束的是语句,表达式加分号没有意义
语句(statement)是为了完成某任务的操作。
1 + 3叫做表达式(expression),指一个为了得到返回值的计算式
var a = 1 + 3;
语句和表达式的区别在于,前者主要为了进行某种操作,一般情况下不需要返回值;后者则是为了得到返回值,一定会返回一个值。
预期为值的地方,都可以使用表达式。比如,赋值语句的等号右边,预期是一个值,因此可以放置各种表达式。()里都是表达式
2.变量
给值取名,然后拿来引用。
变量是对“值”的具名引用
var a = 1;
上面的代码先声明变量a,然后在变量a与数值1之间建立引用关系,称为将数值1“赋值”给变量a
var,是变量声明命令。它表示通知解释引擎,要创建一个变量a。
二次声明没用 赋值有用
var x = 1;
var x;
x // 1
var x = 1;
var x = 2;
// 等同于
var x = 1;
var x;
x = 2;
2.1概念
2.2变量提升
JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。
3.标识符
4.注释
需要注意的是,-->只有在行首,才会被当成单行注释,否则会当作正常的运算。
HTML 代码的注释,所以也被视为合法的单行注释。
x = 1; x = 3;
上面代码中,只有x = 1会执行,其他的部分都被注释掉了。
function countdown(n) {
while (n --> 0) console.log(n);
}
countdown(3)
// 2
// 1
// 0
上面代码中,n --> 0实际上会当作n-- > 0,因此输出2、1、0。
5.区块
JavaScript 使用大括号,将多个相关的语句组合在一起,称为“区块”(block)。
对于var命令来说,JavaScript 的区块不构成多带带的作用域(scope)。在外部仍有效
{
var a = 1;
}
a // 1
6.条件语句
6.1if 结构
var x = 1;
var y = 2;
if (x = y) {
console.log(x);
}
// "2"
上面代码的原意是,当x等于y的时候,才执行相关语句。但是,不小心将严格相等运算符写成赋值表达式,结果变成了将y赋值给变量x,再判断变量x的值(等于2)的布尔值(结果为true)。
if (x = 2) { // 不报错
if (2 = x) { // 报错
6.2if...else 结构
else代码块总是与离自己最近的那个if语句配对。
var m = 1;
var n = 2;
if (m !== 1)
if (n === 2) console.log("hello");
else console.log("world");
上面代码不会有任何输出,else代码块不会得到执行,因为它跟着的是最近的那个if语句,相当于下面这样。
6.3switch 结构
需要注意的是,每个case代码块内部的break语句不能少,否则会接下去执行下一个case代码块,而不是跳出switch结构。
var x = 1;
switch (x) {
case 1:
console.log("x 等于1");
case 2:
console.log("x 等于2");
default:
console.log("x 等于其他值");
}
// x等于1
// x等于2
// x等于其他值
switch语句部分和case语句部分,都可以使用表达式。
switch语句后面的表达式,与case语句后面的表示式比较运行结果时,采用的是严格相等运算符(===),而不是相等运算符(==),这意味着比较时不会发生类型转换。
switch (1 + 3) {
case 2 + 2:
f(); break;
default:
neverHappens();
}
var x = 1;
switch (x) {
case true:
console.log("x 发生类型转换"); break;
default:
console.log("x 没有发生类型转换");
}
// x 没有发生类型转换
6.4三元运算符 ?:
var even = (n % 2 === 0) ? true : false;
上面代码中,如果n可以被2整除,则even等于true,否则等于false。它等同于下面的形式。
var even;
if (n % 2 === 0) {
even = true;
} else {
even = false;
}
7.循环语句
7.1while 循环
7.2for 循环
for语句后面的括号里面,有三个表达式。
初始化表达式(initialize)开始时候只执行一次
条件表达式(test):每轮循环开始时,都要执行这个条件表达式,只有值为真,才继续进行循环。
递增表达式(increment):每轮循环的最后一个操作,通常用来递增循环变量
for ( ; ; ){
console.log("Hello World");
}
上面代码省略了for语句表达式的三个部分,结果就导致了一个无限循环。
7.3do...while 循环
不管是否符合都回先执行一次
7.4break 语句和 continue 语句
for循环也可以使用break语句跳出当前循环。
for (var i = 0; i < 5; i++) {
console.log(i);
if (i === 3)
break;
}
// 0
// 1
// 2
// 3
var i = 0;
while (i < 100){
i++;
if (i % 2 === 0) continue;
console.log("i 当前为:" + i);
}
上面代码只有在i为奇数时,才会输出i的值。如果i为偶数,则直接进入下一轮循环。
如果存在多重循环,不带参数的break语句和continue语句都只针对最内层循环
7.5标签(label)
语句的前面有标签(label),相当于定位符
标签通常与break语句和continue语句配合使用,跳出特定的循环。
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){ if (i === 1 && j === 1) break top; console.log("i=" + i + ", j=" + j); }
}
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0
foo: {
console.log(1);
break foo;
console.log("本行不会输出");
}
console.log(2);
// 1
// 2
上面代码执行到break foo,就会跳出区块。
continue语句也可以与标签配合使用。
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){ if (i === 1 && j === 1) continue top; console.log("i=" + i + ", j=" + j); }
}
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0
// i=2, j=0
// i=2, j=1
// i=2, j=2
上面代码中,continue命令后面有一个标签名,满足条件时,会跳过当前循环,直接进入下一轮外层循环。如果continue语句后面不使用标签,则只能进入下一轮的内层循环。
参考链接
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/106069.html
摘要:是一个知识容量很大的语言,单纯讲也是可以讲个月的,因此,最近一直在纠结,到底中的要怎么讲,也是在捋顺课程的基本逻辑基本语法与书写风格的代码书写风格有四种标准风格,也是行业内所推荐的风格具体代码脚本风格,注意属性的设置具体代码简短风格具体代码 PHP是一个知识容量很大的语言,单纯讲PHP也是可以讲4个月的,因此,最近一直在纠结,到底HTML5中的PHP要怎么讲,也是在捋顺课程的基本逻辑~...
摘要:初学入门案例教程记录了解基础语法,了解运算初介绍基本语法声明变量赋值运算流程打开开发工具在桌面找到开发工具双击打开点击,新建一个新项目点击创建编码创建一个文件完整代码运行初希望能写一些简单的教程和案例分享给需要的 ...
摘要:关于常量的基本方法定义常量当中,通过方法进行常量的定义。第二个参数为必选参数,表示常量的值。如果成功则返回常量的值,如果失败则提示错误信息常量没有被定义。 PHP常量的基本属性 1、区分大小写,定义时可以指定是否大小写敏感 2、常量开头只能是字母和下划线,后面可以接任意个数的字母字符 3、默认情况下,作用域是全局的 4、已定义常量的名称,不能够与再次定义的常量和变量名称相同 5、尽量使...
摘要:布尔值布尔值和布尔代数的表示完全一致,一个布尔值只有两种值的数据类型可以通过内置的函数查询,例如还可以用来判断和的区别在于不会认为子类是一种父类类型。会认为子类是一种父类类型。基本功能是进行成员关系测试和删除重复元素。 ...
摘要:用例运行爬虫命令基本语法是否需要项目存在当然是不需要咯貌似这个命令是不依托一个项目而直接运行一个爬虫的命令。用例我终于写完了,喜欢的就收藏推荐一下吧,这样我就会更有动力写新的教程了,哇哈哈 0. 基本环境说明 本文截图及运行环境均在Win8上实现(是的,我放假回家了,家里的机器是win8的没有办法),但基本步骤与win 7环境基本相同。(应该把~)ps:我后来换了台win7的电脑,所...
摘要:所谓超文本,因为它可以加入图片声音动画多媒体等内容,不仅如此,它还可以从一个文件跳转到另一个文件,与世界各地主机的文件连接。意思是超文本引用用于指定链接页面的打开方式,其取值有和两种,其中为默认值,为在新窗口中打开方式。 学习目标 了解常用浏览器 掌握WEB标准 理解标签语义化 掌握常用的排版标签 掌握常用的文本格式化图像链接等标签 掌握三种列表标签 掌握表格标签 掌握表格标签 掌...
阅读 2951·2023-04-26 02:04
阅读 1264·2021-11-04 16:07
阅读 3665·2021-09-22 15:09
阅读 657·2019-08-30 15:54
阅读 1886·2019-08-29 14:11
阅读 2509·2019-08-26 12:19
阅读 2233·2019-08-26 12:00
阅读 731·2019-08-26 10:27