JS语法 1

225 阅读2分钟

JS的表达式与语句

·add(1,2)表达式的值为函数的返回值

(值和返回值不一样 只有函数有返回值 函数的值就是返回值)

·console.log 表达式的值为函数本身

console.log(3)表达式的值为多少?
答:是undefined   与add(1,2)类似 都是函数返回值 console.log函数的返回值是undefined

二者的区别

表达式一般都有值,语句也可能有也可能没有

语句一般会改变环境(声明、赋值)

标识符的规则

·标识符第一个字符,不可以用数字开头,可以是 Unicode字母 或 $ 或 _ 或中文

·后面的字符,除了上面的所说,可以有数字。

意思为:无效或意外的标记

空格

大部分空格没有实际意义

大部分回车的时候也不影响

只有一个地方不能加回车 就是return后面 会默认加上undefined

if else语句

if(表达式){     
   语句1
}
else{   
   语句2
}

{}在语句只有一句的时候可以省略,不建议这样做

举一个例子,程序最后会打出什么:

a = 1;
if(a === 2);
  console.log('a'); 
  console.log('a等于2');

1、会打出 a等于2   2、什么都不打

 因为if语句 只会管到第一句 不要因为缩进以为if包含两句话

如果加上逗号

a = 1;
if(a === 2);
  console.log('a'), console.log('a等于2');

表示这句话没完,会执行,也就是什么也不打出来

最推荐使用的写法:

if (表达式) {
  语句
} 
else if (表达式) { 
  语句
}
 else {
  语句
}

次推荐使用的写法

function fn(){
  if(表达式){
   return 表达式
}
   if(表达式){
   return 表达式
}
   return 表达式
}

永远不要省略花括号 保持严谨

&&短路逻辑

A && B && C && D   取第一个假值或D

并不会取true/false

用一张图表示:

总结来说:如果前面为假不看后面 前面为真不看后面是不是也为真

console && console.log && console.log('hi')

这段代码意思为:如果console存在,就看console.log是否存在,console.log也存在,就看console.log('hi')是否存在

||短路逻辑

A || B || C || D 取第一个真值或D

并不会取true/false

a || b 等价于:

if (!a){
  b
} else{ }

如果a不是真 就执行后面的b  等于a就什么都不做

经常用于:

a = a || 200

if(a){
  a=a;
} else {
  a=200 //保底值
}

当不确定一个数是否存在的时候,如果a存在,则把a赋值给a,不存在则给赋值200,为保底值,不会等于其他乱七八糟的值