js是世界上使用最广的语言,是门槛最低能产生价值的语言。
一:表达式与语句
1、表达式- 1+2表达式的值为3
- add(添加)(1,2)表达式的值为函数的返回值
- console.log表达式的值为函数的本身
- console.log(3)表达式的值为undefined,但是打印出来是3;
- 只有函数才有返回值 表达式——指一个为了得到返回值的计算式。
两者的却别:表达式一般都有值,语句可能有也可能没有,语句一般会改变坏境(声明,赋值)。
标识符
变量名是标识符
var = 1
var $ = 1
var __ = 1 //下划线一般只写两个,写太多会被其他程序员骂死,因为不知道下划线有多少个
var 你好 = 'hi'
注释
// ***** 只能注释一行
/*....*/ 全部都是注释的内容,不限行数
if语句
if(表达式){语句1} else{语句2}
如果表达式成立,那么语句1执行,不成立则执行语句2。
{}在语句只有一句的时候可以省略,但是不建议这么做,不管是否只有一句也要写。
a = 1;
if (a === 2){
console.log('a');
}else{
console.log('a不等于2')
}
- if...else 结构
- if 代码块后面,还可以跟一个else 代码块,表示不满足条件时,所要执行的代码
if (m === 3){
//满足条件,执行语句1
}else{
//不满足条件,执行语句2
}
while
while (表达式){语句}
- 判断表达式的真假
- 当表达式为真,执行语句
- 执行完再判断表达式的真假
- 当表达式为假,执行后面的语句
注意死循环 举例:
var = a+0.1
while (a!==1){
console.log(a)
a+0.1
}
复制代码
也是死循环,因为IEEE754的浮点数表达方式问题,浮点数相加所得的1并不是准确的1
for循环
for是while循环的方便写法,是一种语法糖
语法
- for(语句1;表达式2;语句3){ 循环体 }
- 先执行语句1
- 然后判断表达式2
- 如果为真,执行循环体,然后执行语句3
- 如果为假,直接退出循环,执行后面的语句
break 和 continue
退出所有循环 和 退出当前一次循环
for (var i = 0; i < 10; i++) {
for (var j = 100; j < 110; j++) {
if (i === 5) {
break;
}
}
console.log(i);
}
复制代码
break只打断最近的一层循环,因此上述的i循环并没有被打断
label 语法
foo: {
console.log(1);
break foo;
console.log('本行不会输出1');
}
console.log(2);
复制代码
面试可能会问到
{
foo: 1
}不是对象,是标签,内容是1,但是Chrome浏览器有奇怪的优化,可以在火狐浏览器上进行实现