主页
主页
文章目录
  1. 1. js语句
  2. 2. 表达式的副作用
  3. 3. 大括号
  4. 4. else if
  5. 5. switch

javascript基础-语句

1. js语句

所有的js语句其实都会返回结果

在调试工具中执行 var a = 12 会返回undefined ,表示声明变量会返回undefined

2. 表达式的副作用

函数执行的时候,有可能会改变全局变量。

1
2
3
4
5
function boo() {
a = a + 1
}
var a = 1;
boo(); // a被改变

a++表示先赋值再++。 就是用括号扩起来也没有用。想让他++完之后再赋值。需要使用逗号表达式

1
2
3
4
var a = 42;
a = a++; // 42
a = (a++) //42
a = (a++, a) // 43

在连续赋值时要注意,如果b没有声明则会创建一个全局变量

1
var a = b =42 ; 会创建一个全局变量 严格模式报错

也可以利用赋值语句的副作用。先执行再赋值。接着判断

1
2
3
4
5
6
7
8
9
可以利用赋值语句
function vowels(str) {
var matches;
if(str && (matches = str.match(/[aeiou]/g))) {
// 先判断 如果成功将值赋值给matches 失败返回null不进判断
return matches;
}
}
vowels("hello world")

3. 大括号

1
2
3
var a = {
foo: bar()
}

去掉var a =不会报错

1
2
3
4
{
foo: bar()
}
// 因为{}只是I个普通的代码块。

而foo:bar()不会报错的原因是因为foo:被当成了标签, js的标签语法用来break和continue

1
2
3
4
5
6
7
8
function foo() {
bar: {
console.log('hello');
}
break bar;
console.log(666)
}
foo() // hello

4. else if

js中本身是没有else if的 是因为if else后面可以省略大括号

1
2
3
4
5
6
7
8
9
if () {
//
} else {
if () {
//
} else {

}
}

可以简写为

1
2
3
4
5
6
if() {
}
else if () {
}
else {
}

5. switch

switch中是===判断 如果想用==

1
2
3
4
5
6
7
8
9
10
var a = '42';
switch(true) {
case a == 10;
console.log(1);
break;
case a == 42;
console.log(2);
break;
default;
}
支持一下
扫一扫,支持superkimi
  • 微信扫一扫
  • 支付宝扫一扫