语句
JavaScript 程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。
语句(statement)是为了完成某种任务而进行的操作,比如下面就是一行赋值语句。
var a = 1 + 3;
这条语句先用var
命令,声明了变量a
,然后将1 + 3
的运算结果赋值给变量a
。
1 + 3
叫做表达式(expression),指一个为了得到返回值的计算式。语句和表达式的区别在于,前者主要为了进行某种操作,一般情况下不需要返回值;后者则是为了得到返回值,一定会返回一个值。凡是 JavaScript 语言中预期为值的地方,都可以使用表达式。比如,赋值语句的等号右边,预期是一个值,因此可以放置各种表达式。
标识符
标识符(identifier)指的是用来识别各种值的合法名称。最常见的标识符就是变量名,以及后面要提到的函数名。JavaScript 语言的标识符对大小写敏感,所以a
和A
是两个不同的标识符。
标识符有一套命名规则,不符合规则的就是非法标识符。JavaScript 引擎遇到非法标识符,就会报错。
简单说,标识符命名规则如下。
- 第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号(
$
)和下划线(_
)。 - 第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字
0-9
。
下面这些都是合法的标识符。
arg0
_tmp
$elem
π
下面这些则是不合法的标识符。
1a // 第一个字符不能是数字
23 // 同上
*** // 标识符不能包含星号
a+b // 标识符不能包含加号
-d // 标识符不能包含减号或连词线
中文是合法的标识符,可以用作变量名。
var 临时变量 = 1;
if else 语句
语法
if(表达式){语句1}else{语句2}
有一些变态情况
例一:表达式里有变态情况
a = 2
if (a = 1){
console.log (a是1)
} else {
console.log (a不是1)
}
//其中 a=1 意义为 a 赋值为 1 并不是 a 等于 1,需要把 a=1 改为 a===1
例二:语句1中有变态情况,如嵌套的 if else
a = 2
if (a < 100)
if (a < 10)
console.log (a小于10)
//其中第二句,第三句为语句1的内容,只是省略了{}并在语句1中嵌套了 if ,最后的值为 a小于10
例三:语句2中有变态情况,如嵌套的 if else
a = 2
if (a < 100){
} else if (a > 10000){
console.log (a大于10000)
} else {
}
//其中 else 后面的内容为语句2,语句2中嵌套了 if else ,并省略了{},这样就有了 else if ,实际为两对
//if else
例四:缩进也可以有变态情况
a = 1
if (a === 2)
console.log (a)
console.log (a等于2)
//if 的 {} 只包含 console.log (a) 的内容,此句式为 if (a === 2) 则 if 不成立,
//直接看到 console.log (a等于2) ,最后的值为 a等于2
问号冒号表达式
表达式1 ? 表达式2 : 表达式3
例:
function max (a,b) {
if (a > b) return a;
else return b ;
}
可以简写为
function max (a,b) {
return a > b ? a : b
}
//a > b 为 a 否则就为 b
&& 短路逻辑
A && B && C && D 取第一个假值或 D ,并不会取 true/false
例:
if (window.f1) {
console.log (f1存在)
}
可以简写为
window.f1 && console.log (f1存在)
|| 短路逻辑
A || B || C || D 取第一个真值或 D ,并不会取 true/false
例一:
a || b
if (!a) {
b
}
//式1等于式2,意思为若 a 不为真,则执行 b
例二:
a = a || 100
if (a) {
a = a
} else {
a = 100
}
//式1等于式2,意思为若 a 存在,则 a = a ,若 a 不存在,则 a = 100
while 循环
语法
while (表达式) {语句}
判断表达式的真假,当表达式为真,执行语句,当表达式为假,执行后面的语句
例一:
var i = 0
while (i < 10) {
console.log (i)
i = i + 1
}
//当 i 小于 10 时,打出 i 再 i + 1 后看是否小于 10 ,依次循环到 i 大于等于 10 结束
例二:变态情况
var a = 0.1
while (a !== 1) {
console.log (a)
a = a + 0.1
}
请问: 此句式是死循环吗?
答: 是死循环,原因为浮点数不精确,导致直接跳过 a = 1 ,造成死循环
for 循环
语法
for (语句1 ; 表达式2 ; 语句3) {
循环体
}
先执行语句1,然后判断表达式2,如果为真,执行循环体,然后执行语句3;如果为假,直接退出循环,执行后面的语句
例一:
for (let i = 0 ; i < 5 ; i + 1) {
console.log (i)
}
//初始 i = 0 ,若 i 小于 5 则打出 i 并使 i + 1 ,依次循环到 i = 5 结束
例二:
for (var i = 0 ; i < 5 ; i++) {
setTimeout ( () => {
console.log (i)
} , 0)
}
//setTimeout 表示过一段时间以后
请问: 上面式子执行后会打印出什么
答: 会打出 5 次 5 。
原因: 1.为什么值为5:因为过一段时间以后,for 循环到最后一个值为 5
2.为什么为 5 次:因为 setTimeout 在 for 循环中被执行了 5 次
break 和 continue
break:退出当前循环
例:
for (var i = 0 , i < 10 ; i++) {
if (i%2 === 1) {
break
}
}
//i%2 === 1 意思为 i 除以 2 余数为 1 ,指的是单数
i 的值为 1 ,原因为执行到 break 就会退出当前 for 循环
continue: 跳过当前循环
例:
for (var i = 0 , i < 10 ; i++) {
if (i%2 === 1) {
continue
} else {
console.log (i)
}
}
//值为 0 2 4 6 8 . 会跳过为单数的值
label 语句
基本不常用,只针对于面试
{
foo : 1
}
请问: 上面的区块是什么?
答: foo 为 label(标签),它的值为 1
声明:本文部分素材转载自互联网,如有侵权立即删除 。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容