第三章:语言基础

本文详细介绍了JavaScript的基础知识,包括语法、关键字与保留字、变量(var、let、const)、数据类型和操作符。强调了let和const在ES6中的重要性,以及它们与var的区别,如块级作用域、不可重复声明和常量约束。还提到了严格模式的使用以及typeof操作符在确定变量类型中的作用。
摘要由CSDN通过智能技术生成

3.1语法

3.1.1 区分大小写

ECMAScript中一切都区分大小写

3.1.2标识符

标识符:变量、函数、属性和函数参数的名称
规则:

  • 第一个字符:字母、下划线、美元符号($)
  • 其余字符:字母、数字、下划线、美元符号($)
  • xxxXxxxXxx(推荐使用形式)

3.1.3 注释

单行注释://
多行注释:/**/

3.1.4 严格模式

  • ECMAScript3的一些不规范写法在这种模式下会被处理,对于不安全的活动将抛出错误。
  • 启用严格模式:"use strict";
    1、放在函数体开头
    2、一个预处理指令,任何支持JavaScript的引擎看到都会切换为严格模式。
    3、这种语法形式的目的:不破坏ECMAScript3语法
    4、现代浏览器都支持严格模式

3.1.5 语句

  • 语句以分号结尾。
  • 控制语句中推荐使用代码块,即使只有一句。

3.2 关键字与保留字

ES6规定的所有关键字:
在这里插入图片描述
ES6为将来保留的所有词汇:
在这里插入图片描述

3.3 变量

var 在所有版本的ES中都可以使用,而 const 和 let 只能在ES6以及更晚的版本中使用。

3.3.1 var关键字

var message;

  • 不初始化的情况下,变量会保存一个特殊值undefined
  • 一个变量可以赋上不同类型的值【不推荐】

(1)var声明作用域

  • 成为包含它的函数的局部变量
  • 省略var可以创建一个全局变量【不推荐】
  • 严格模式下不能定义名为 eval 和 arguments 的变量
    解释:按照规则,关键字作为语言保留,不能作标识符,严格模式下的保留字也有所不同。

(2)var 声明提升

  • 使用var关键字声明的变量会自动提升到函数作用域顶部
<script>
function foo() {
   
  console.log(age);
  var age = 26;
}
foo();  // undefined 
</script>

以上代码等价于

<script>
function foo() {
   
  var age;
  console.log(age);
  age = 26;
}
foo();  // undefined
</script>
  • 反复多次使用var声明同一个变量也没问题
    可明多次不报错,而且不会覆盖之前的数值

3.3.2 let 声明

  • 与 var 的作用差不多,最明显的区别:
    (1)let 声明的范围是块作用域,而 var 声明的范围是函数作用域
<script>
if (true) {
   
  var name = 'Matt';
  console.log(name);  // Matt
}
console.log(name);    // Matt

if (true) {
   
  let age = 26;
  console.log(age);   // 26
}
console.log(age);     // ReferenceError: age is not defined 
</script>

(2)let 不允许同一个块作用域中出现冗余声明,会导致报错。

<script>
var name;
var name;

let age;
let age;  // SyntaxError; identifier 'age' has already been declared
</script>

(3)嵌套使用相同的标识符不会报错,因为在同一个块中没有重复声明

<script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值