-
ES6与ES2019差别不大 -
一门语言的价值是由其产生的价值决定
-
js是世界上使用最广的语言 -
js是门槛极低的语言(只要你不学糟粕) -
js是一门能产生价值的语言(虽然不美) -
它的优秀之处并非原创,它的原创之处并不优秀。
-
程序员永远不要相信人类
-
永远使用最没有歧义的写法
- 表达式
1 + 2表达式的值为3add(1,2)表达式的值为函数的返回值只有函数有返回值,值和返回值不同
console.log表达式的值为函数本身console.log(3)表达式的值为多少?(undefined)
- 语句
var a = 1是一个语句
- 二者的区别
- 表达式一般都有值,语句可能有也可能没有
- 语句一般会改变环境(声明、赋值)
- 上面两句话并不是绝对的
- 大小写敏感
- 大部分空格没有实际意义,回车大部分时候也不影响,只有一个地方不能加回车,就是
return后面,如果其后面加上回车,会自动加上undefined。
- 标识符
- 规则:第一个字符,可以是
Unicode字母或$或_或中文 - 后面的字符,除了上面所说的还可以有数字
- 变量名是标识符
var_ = 1
var$ = 2
var______ = 6
var 你好 = 'hi'
- 区块
- 把代码包在一起
{
let a = 1
let b = 2
}
- 常常与
if/for/while合用
- if语句
- 语法:
if(表达式){语句1}else{语句2}{}在语句只有一句时可以省略,不建议这样做
- 变态情况
- 表达式力可以非常变态,如a = 1
- 语句1里可以非常变态,如嵌套的
if else - 语句2里可以非常变态,如嵌套的
if else - 缩紧也可以很变态,如面试题常常下套
a = 1
if(a === 2)
console.log('a')
console.log('a等于2')
逗号表示这句话没有完,分号表示这句话完了:
- switch语句
- 语法:
switch (fruit) {
case "banana":
break;
case "apple"
break;
default:
}
- break:大部分时候省略break你就完了,少部分的时候可以利用break。
- 问好冒号表达式
表达式1 ?表达式2 : 表达式3
- &&短路逻辑
A && B && C && D 取第一个假值或 D 并不会取true/false
如果前面为真,就取后面返回,如果前面为假,就取前面返回。
- || 短路逻辑
A || B || C || D 取第一个真值或D 并不会取true/false
若前面为真,就返回前面的值,如果前面为假,就返回后面的值
- while 循环
- 语法
while(表达式){语句} - 判断表达式的真假
- 当表达式为真,执行语句,执行完再次判断表达式的真假
- 当表达式为假,执行后面的语句
do...while用得不多,自行了解
由于浮点数的问题,造成死循环:
- for循环
- 语法糖:for是while循环的方便写法
- 语法:
for(语句1;表达式2;语句三){循环体} - 先执行语句1,然后判断语句2。
- 如果为真,执行循环体,然后执行语句3
- 如果为假,直接退出循环,执行后面的语句
break和continue:退出所有循环&退出当前一次循环- label语句:用得很少,面试会考
- 语法
foo:{ //foo是一个标签,表示后面的代码块
console.log(1);
break foo; //跳出foo代码块
console.log('本行不会输出');
}
console.log(2);
{
foo: 1
}
上面的东西是什么?
一个代码块(不是对象),代码块里有个标签foo,这个标签只有一行:1。