这一周因为工作的原因,学习比较少。主要学习了js的基本语句,感觉和C语言类似,可能程序设计语言都差不多吧。有点意外上一个博客还有前辈回复,那就更要加油了。
根据笔记总结了一些简单的js语句:
js的语句和其他语句一样,都是一行行的执行,比如我们声明变量时候,可能会写
var a=3+3;
这条语句的执行顺序是,先声明变量a,然后再把3+3赋值给a,语句需要以“;”结尾,但是如果是表达式就不需要了。
变量:
var a=1;
其实际执行的语句是
var a;
a=1;
也可以和其他语言一样,只声明变量不赋值。不过js有一个特殊的地方,比如我们在C语言中,没有声明变量a,就直接写:
a=1;
那么系统会给提示,告诉你a是一个未声明变量。但是js不会,他会自动替你声明,但是事实上var a=1;和a=1;不完全一样,主要的不同在于delete无法删除前者。
变量提升:
js有变量提升的功能,因此也要比C语言等方便的多,所谓的变量提升,就是:
console.log(a);
var a=1;
在其他语言中,这样是行不通的,但是在js中,是被允许的。系统会自动的把第二条语句提升到第一条语句前面,保证这个语句的顺利执行。但是注意一个点,就是:
console.log(a);
a=1;
这种形式,js的语句是不会执行变量提升的,所以会报错。
还有一个很神奇的点就是,js中汉字也可以做变量名,因为汉字也是合法标识符。
变量名:
和C语言要求类似,不做赘述。
注释:
//
/*……*/
<!-- …… -->
-->
前两种大多数人都不会陌生,第三种是因为最早兼容html,第四种只有在行首才被当做单行注释。
区块:
js的区块不构成单独作用域。
条件语句:(if/switch)
条件语句的应用方法和其他语言区别不大,这里重点想说一下运算符:
= //赋值表达式
== //相等运算符
=== //严格相等运算符
赋值表达式和相等运算符大家再熟悉不过了,关于严格相等运算符和相等运算符的区别是:采用严格相等运算符不会发生类型转换。
三元运算符:
(condition)?expr1:expr2;
和C语言一样。
循环语句:
whlie/do……while/for
和C语言没有区别,不赘述。
label:
标签,个人感觉类似于C语言goto的作用,一般与continue和break搭配用来跳出特定循环。比如
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);
}
}
加top以后,break可以跳出双层,否则只跳出内层。
学习参考书目:
《JavaScript标准参考教程》阮一峰