JavaScript入门基本语法

83 阅读3分钟

JS语言可以说前端技术的核心部分了。这是一门脚本语言,或者说解释性语言,它在运行前无须进行预编译就可在浏览器上运行。但跟其他常见编译型语言(如Java)相同,它也有其自身的基本数据类型,表达式,运算符及语法框架等。

基本表达式和语句

表达式和语句是存在区别的

表达式

  • 1 + 2 就是表达式,它一般有值
  • fn(x, y) 一个函数表达式的值是该函数的返回值
  • 一组对比可以帮助你更好理解表达式
    • console.log的值为这个函数本身
    • 而console.log(1)的值是多少呢?答案不是1,也不是函数本身,而是undefined JavaScript中函数没规定返回值时,默认返回值是undefined

语句

  • let x = 1 + 2 就是一个语句,它可以给变量赋值

语句与表达式的区别:

  • 表达式一般都有值,而语句不一定
  • 语句是用来改变环境的(声明、赋值)

注意,JS中大小写很敏感,变量名,函数名,大小写是不一样的,注意区分

标识符

命名规则:

JS的标识符命名规则可以说是非常宽松了。第一个字符可以是 Unicode 字母或美刀 $ 或 _ 甚至是中文。

第二个字符开始,还可以有数字,记住数字不能打头即可。

let $ = 1 合法√

let _ = 1 合法√

let ___ = 1 合法√

let 张三 = 1 合法√

区块block

区块可以说是JS语言中的重要概念,使用大括号,将多个相关的语句组合在一起,就称为“区块”(block)。一个区块就构成了一个单独的作用域。区块往往用来构成其他更复杂的语句或结构,比如ifwhileforfunction等。

if else语句

if语句是老常客了,也是最基本的选择语句,在各大语言里都能经常碰到它。

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

需要注意的是,虽然{}在只有一句的情况下可以忽略,不过不建议这么做,会降低代码可读性。

不看常态看变态:

  • 条件表达式里可以放奇怪的东西,如 a = 1,它被认为是true,所以可以执行
  • if,else里都可以无限嵌套if else
  • 缩进也可以很坑,面试题里常常下套让你钻(if后不加{}容易带来混淆,所以为什么建议加上)
a = 1
if(a === 2)
  console.log('a')
  console.log('a=2')

程序猿圣经————使用最没有歧义的写法

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

三元表达式(问好冒号表达式)

表达式1? 表达式2: 表达式3

这是if else语句一种特殊的简写方法,它有一些需要注意的地方,这一块先略过,下次再细细分解。

while 循环,for语句

while

while(表达式) {循环体}

执行逻辑是,先判定表达式的true或false,如果true,那么执行循环体语句,执行完继续判定是否为true...

直到表达式为false时,跳过{}中的语句,执行后面的代码。

所以很容易看出来,非常容易写出死循环,要万分注意!

do while语句非常类似的,只是它先做一遍do,再去判定表达式的布尔值。

for

for循环可以用while循环来实现,但是它是一种非常方便且几乎最常用的循环写法。

for(语句1;表达式;语句3) {
循环体
}

如for(let i = 1; i < 11; i++) {} 非常容易实现遍历等等

break / continue

这两个是用在循环体语句中的,分别表示:

break 退出所有循环 / continue 退出当前这一次循环

label语句

实际工作用的非常之少,但是算是知识点,面试可能会考到。

point(标识符): {
    console.log('hi');
    break point;
    console.log('本行不会输出');
}

面试继续下套:

{
  foo: 1
}

这是什么?是一个对象Object么?错误

它是一个 {} 包起来的 block ,里面有个 label 名字叫 foo,标记的语句块就是1。

实际工作中这么写要被人打死,就是专门用来应试下套的。需要多多注意语法中这些大坑。